declare @c_code varchar(1)
set @c_code = ''
SELECT
LEFT(CANCEL_DT, 4) AS YYYY,
COUNT(SUP_NO) AS CNL_COUNT,
SUM(CASE WHEN 'p' ='P' THEN ISNULL(ACC_COUNT,0)
WHEN 'p' ='S' THEN ISNULL(ACC_COUNT_SPCL,0)
ELSE ISNULL(ACC_COUNT,0) + ISNULL(ACC_COUNT_SPCL,0) END ) ACC_COUNT
FROM gt..TBLMEMBER
WHERE LEFT(CANCEL_DT, 4) <= '2014'
AND CASE WHEN 'p' ='P' THEN PBLCYN WHEN 'p' ='S' THEN SPCLYN ELSE 'Y' END = 'Y'
AND case when cancel_code = '11' then '1' when cancel_code <> '11' then '2' else ''end = @C_code
GROUP BY LEFT(CANCEL_DT, 4)
ORDER BY LEFT(CANCEL_DT, 4)
저기 위의 연두색 부분에서 @c_code에 '1' 값이 들어간 경우 cancel_code = '11' 이 나오고
저기 위의 연두색 부분에서 @c_code에 '2' 값이 들어간 경우 cancel_code <> '11' 이 나옵니다
하지만 @c_code에 '0' 값이 들어갔을 때 cancel_code 전체 값이 들어가야 하는데 현재의 상태에서는 아무것도 나오지 않습니다
전체값이 나올수 있게 하려면 어떻게 해야할까요??
when이 잘못쓰인거 아닌가요? 내용을 봐서 cancel_code가 11인 경우 1로 선택되고 cancel_code가 11인 아닌 경우 모든 값은 2로 표시되는 형태로 되어 있는데요?뭔가좀 이상합니다.