합계를 구하고자합니다.
rollup을 써봤습니다
그러나 문제는,, 아래 쿼리처럼 제일 바깥에서 조건문을 줍니다
(ex) where a = 'a'
플랫폼 구성상,,, 화면에서 조회시 검색조건 값이 아래 쿼리처럼
해당조회쿼리 제일 바깥에 자동으로 들어가게 되어있습니다.
저 조건문이 고정이라면 group by rollup(a,( a,b,c)) 이렇게 하면되겠지요,,
그러나 a,b,c 중에 조건값이 있을수도 없을수도있습니다
조건값이 없으면 제일 하단에 합계가 저절로 나오지만,,
조건값이 하나라도 들어간다면,, 합계가 나오지 않습니다.
그리고 그 조건값이 3개일지 1개일지 abc중 무엇일지 알수없습니다
이런경우 어떻게 해야하나요?
select * from (
with tt as (select 'a' a , 'b' b, 'c' c, 100 d , 200 e, 300 f from dual
union all
select 'd' a , 'e' b, 'f' c, 150 d , 250 e, 350 f from dual
union all
select 'a' a , 'e' b, 'f' c, 150 d , 250 e, 350 f from dual
)
select a,b,c, sum(d), sum(e), sum(f) from tt
group by rollup(a,( a,b,c))
) ttt
where a = 'a' |