초보가 짠쿼리좀 봐주세요 0 3 2,349

by 정길순 [SQLServer] CONVERT [2012.03.01 23:36:24]



제가 짠 허접한 쿼리문인데요 ㅜ

 select a.id, a.date, request, success
from
(select id, CONVERT(varchar(10),reservedt,126)as date, count(*)as request
from student
where convert(varchar(7),reservedt,126) = '2011-12' and id = 1111
group by id, CONVERT(varchar(10),reservedt,126))a


left outer join

(select id , convert(varchar(10),reservedt,126)as date, count(*)as success
from student
where key='6' and id=1111 and  convert(varchar(7),reservedt,126 ) = '2011-12'
group by id,  convert(varchar(10),reservedt,126 ))b
on a.date = b.date

order by a.date

1111 2011-12-02 3 NULL
1111 2011-12-07 3 NULL
1111 2011-12-08 6 NULL
1111 2011-12-14 5 2

결과값 입니다  제가 원하는 결과는 나옵니다 . 하지만 제가 궁금 한 것은 이방법이 과연 최선의 방법인가 입니다

쿼리문이 너무 길어 진거 같은데 조금 줄일수 있는 방법이 없을까요??

by 마농 [2012.03.02 08:45:31]
SELECT id
     , CONVERT(VARCHAR(10), reservedt, 126) AS date
     , COUNT(*) AS request
     , COUNT(CASE WHEN key = '6' THEN 1 END) AS success
  FROM student
 WHERE CONVERT(VARCHAR(7), reservedt, 126) = '2011-12'
   AND id = 1111
 GROUP BY id, CONVERT(VARCHAR(10), reservedt, 126)
;

by 손님 [2012.03.02 09:31:19]

마농님 정말 감사합니다 ㅜ 덕분에 많이 배웠습니다  다시한번 감사드립니다.!

by 개논물 [2012.03.02 09:32:17]

로그인도 안하고 글을썼네요 다시한번 감사드립니다.
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입