visit 테이블이구여
방문번호
|
이름 |
체크인날짜 |
체크아웃 날짜 |
회원등급 |
1 |
a |
20150301 |
20150302 |
gold |
2 |
b |
20150303 |
20150304 |
silver |
3 |
c |
20150304 |
20150304 |
gold |
4 |
d |
20150301 |
20150303 |
silver |
5 |
e |
20150303 |
20150303 |
vip |
원하는 결과는
|
체크인 |
|
|
체크아웃 |
|
|
날짜 |
silver |
gold |
vip |
silver |
gold |
vip |
20150301 |
1 |
1 |
0 |
0 |
0 |
0 |
20150302 |
0 |
0 |
0 |
0 |
1 |
0 |
20150303 |
1 |
0 |
1 |
1 |
0 |
1 |
20150304 |
0 |
1 |
0 |
1 |
1 |
0 |
날짜는 매일 나와야하구 그날 체크인이나 아웃한 사람 없으면 0으로 표시돼야해요ㅠㅠ
체크인, 체크아웃 따로 해서 조인해야할까요?
select dte, isilver, igold, ivip, vsilver, vgold, vvip
from
(select '20150301', count(*) from visit where ckIn='20150301' and grade='silver') is,
(select '20150301', count(*) from visit where ckIn='20150301' and grade='gold') ig,
(select '20150301', count(*) from visit where ckIn='20150301' and grade='vip') iv,
(select '20150301', count(*) from visit where ckOut='20150301' and grade='silver') os,
(select '20150301', count(*) from visit where ckOut='20150301' and grade='gold') og,
(select '20150301', count(*) from visit where ckOut='20150301' and grade='vip') ov
이렇게 무식한 방법으로 햇더니 한달치는 잘 나오는데
3달씩 나와야하는데 3달 나오게하려니까
리소스 풀 'internal'에 시스템 메모리가 부족하여 이 쿼리를 실행할 수 없습니다.
라는 오류가 떳어요.
원래는 등급도 더 많고 복잡해서...
mssql쓰구요.. 어떻게 해야하죠? |