쿼리를 접한지 얼마 안되는 초보입니다..^^; 특정 컬럼들의 합을 구하려고 하는데 잘 되지 않아 이렇게 질문드립니다.
우선 Table 구조부터 설명드리면,
TABLE 'AA'
ID A1 A2 A3 A4 A5...... A10 A11 A12
1 12 22 3 43 34 34 3 11
2 3 33 59 12 450 1 1 1
....
와 같이 값들이 들어있는 상태입니다. 프로그램상에서 FROM ~ TO 월을 입력받으면 해당 월에 대한 합계들을 더해야 하는 상황입니다.
만약 1~8월을 입력받으면 해당 ID별로 A1~A8의 값들을 더해야되고, 3~6월을 입력받으면 A3~A6의 값들을 더해야 됩니다.
쿼리로 한번에 값을 가져오는 방법이 없을까 생각중인데, 효율적인 방법이 생각나지 않네요 ㅠ
컬럼명의 규칙을 이용해 값을 더하면 될 것 같은데 좋은 방법이 없을까요?
이 방법은 어떨까요?
물론 counts in부분에 변수로 받으면됩니다.
select a.counts,SUM(orders)
from
(
select counts,orders
from
(
SELECT * FROM SUM_TABLE
where ID = 1
)p
unpivot
(orders for counts in(A1,A2,A3,A4,A5,A6,A7,A8))
as unp
)a
where a.counts in ('A1','A2')
group by a.counts
성능은 테스트 않해서 ^^... 더욱 좋은 쿼리 답변 주시는 분도 있으실 겁니다.
제 지식으로는 여기까지 ^^;;