이런 오류가 나는데 여러개의 서버가 있는데 동일한 쿼리가 한군데서만 성공하고 다른곳에서는 이런 오류가 나네요..
다른곳에서는 10개 이하로 설정하면 되더라고요..
SELECT
CASE WHEN 나이 BETWEEN 0 AND 4 THEN ' 0세 ~ 4세'
WHEN 나이 BETWEEN 5 AND 9 THEN ' 5세 ~ 9세'
WHEN 나이 BETWEEN 10 AND 14 THEN '10세 ~ 14세'
WHEN 나이 BETWEEN 15 AND 19 THEN '15세 ~ 19세'
WHEN 나이 BETWEEN 20 AND 24 THEN '20세 ~ 24세'
WHEN 나이 BETWEEN 25 AND 29 THEN '25세 ~ 29세'
WHEN 나이 BETWEEN 30 AND 34 THEN '30세 ~ 34세'
WHEN 나이 BETWEEN 35 AND 39 THEN '35세 ~ 39세'
WHEN 나이 BETWEEN 40 AND 44 THEN '40세 ~ 44세'
WHEN 나이 BETWEEN 45 AND 49 THEN '45세 ~ 49세'
WHEN 나이 BETWEEN 50 AND 54 THEN '50세 ~ 54세'
WHEN 나이 BETWEEN 55 AND 59 THEN '55세 ~ 59세'
WHEN 나이 BETWEEN 60 AND 64 THEN '60세 ~ 64세'
WHEN 나이 BETWEEN 65 AND 69 THEN '65세 ~ 69세'
WHEN 나이 BETWEEN 70 AND 74 THEN '70세 ~ 74세'
WHEN 나이 BETWEEN 75 AND 79 THEN '75세 ~ 79세'
WHEN 나이 > 79 THEN '80세 이상'
ELSE '연령미상' END 나이
,SUM(남자) 남
,SUM(여자) 여
,SUM(불명) 불명
FROM tb1 A
INNER JOIN tb2 B ON A.seq = B.seq
INNER JOIN tb3 C ON B.seq = C.seq
GROUP BY
CASE WHEN 나이 BETWEEN 0 AND 4 THEN ' 0세 ~ 4세'
WHEN 나이 BETWEEN 5 AND 9 THEN ' 5세 ~ 9세'
WHEN 나이 BETWEEN 10 AND 14 THEN '10세 ~ 14세'
WHEN 나이 BETWEEN 15 AND 19 THEN '15세 ~ 19세'
WHEN 나이 BETWEEN 20 AND 24 THEN '20세 ~ 24세'
WHEN 나이 BETWEEN 25 AND 29 THEN '25세 ~ 29세'
WHEN 나이 BETWEEN 30 AND 34 THEN '30세 ~ 34세'
WHEN 나이 BETWEEN 35 AND 39 THEN '35세 ~ 39세'
WHEN 나이 BETWEEN 40 AND 44 THEN '40세 ~ 44세'
WHEN 나이 BETWEEN 45 AND 49 THEN '45세 ~ 49세'
WHEN 나이 BETWEEN 50 AND 54 THEN '50세 ~ 54세'
WHEN 나이 BETWEEN 55 AND 59 THEN '55세 ~ 59세'
WHEN 나이 BETWEEN 60 AND 64 THEN '60세 ~ 64세'
WHEN 나이 BETWEEN 65 AND 69 THEN '65세 ~ 69세'
WHEN 나이 BETWEEN 70 AND 74 THEN '70세 ~ 74세'
WHEN 나이 BETWEEN 75 AND 79 THEN '75세 ~ 79세'
WHEN 나이 > 79 THEN '80세 이상'
ELSE '연령미상' END
Comment 1
-
건우아빠
2014.03.28 11:57
저 같은 경우는 case가 많을때는 코드표 뷰나 테이블에 미리 만들어 놓고 사용합니다.
with ageT
as ( select 0 f_age, 4 t_age , ' 0세 ~ 4세' gb_nm union all
select 5 , 9 , ' 5세 ~ 9세' union all
select 10 , 14 , '10세 ~ 14세' union all
select 15 , 19 , '15세 ~ 19세' union all
select 20 , 24 , '20세 ~ 24세' union all
select 25 , 29 , '25세 ~ 29세' union all
select 30 , 34 , '30세 ~ 34세' union all
select 35 , 39 , '35세 ~ 39세' union all
select 40 , 44 , '40세 ~ 44세' union all
select 45 , 49 , '45세 ~ 49세' union all
select 50 , 54 , '50세 ~ 54세' union all
select 55 , 59 , '55세 ~ 59세' union all
select 60 , 64 , '60세 ~ 64세' union all
select 65 , 69 , '65세 ~ 69세' union all
select 70 , 74 , '70세 ~ 74세' union all
select 75 , 79 , '75세 ~ 79세' union all
select 80 , 999, '80세이상' ) ,
res as (
select 11 age union all
select 21 age union all
select 31 age union all
select 41 age union all
select 51 age union all
select 61 age union all
select 71 age
)
select *
from res a join ageT b on a.age between b.f_age and b.t_age