특정일자의 업체별 배송지를 나타내려고 합니다.
첫째행에는 해당 업체의 해당 일자의 배송총계가 나와야 하구요
그 아래쪽에는 해당 업체쪽에서 배송된 배송지별 갯수가 나와야 합니다.
테이블 구조의 경우에는 하루에 한번씩 통계DB 데이터를 별도 생성하는 식으로
구성했습니다.
업체명 배송지역 일자 갯수
==========================
A업체 서울 2015-10-10 2
A업체 경기 2015-10-10 1
A업체 충청 2015-10-10 1
실제 페이지에 나와야 하는 형태는 아래와 같습니다.
10월 10일
==========
A업체 4
서울 2
경기 1
충청 1
B업체 2
서울 1
경기 1
어떤식으로 쿼리를 짜야할지 힌트 좀 부탁드릴께요..
Comment 3
-
팔개
2015.10.11 01:21
-
냥냥
2015.10.12 21:52
아직 모르는 명령어들이 많네요~ 찾아봐야겠네요..감사합니다.
-
건우아빠
2015.10.13 11:09
이런식으로도 가능은 합니다만.... 그닥.
with res as
(
select 'A업체' [업체명],'서울' [배송지역],'2015-10-10' [일자], 2 [갯수] union all
select 'A업체','경기','2015-10-10', 1 union all
select 'A업체','충청','2015-10-10', 1 union all
select 'B업체' [업체명],'서울' [배송지역],'2015-10-10' [일자], 1 [갯수] union all
select 'B업체','경기','2015-10-10', 1 )select case GROUPING_id( [업체명] , [배송지역] )
when 3 then [일자]
when 1 then [업체명]
when 0 then [배송지역]
end [구분],
case GROUPING_id([업체명] , [배송지역])
when 3 then NULL
else sum([갯수] )
end [갯수]
--, GROUPING_id( [업체명] , [배송지역] )
from res
GROUP BY GROUPING SETS ( ([일자]), ([업체명] ), ( [업체명] , [배송지역] ) )
order by [업체명], GROUPING_id( [업체명] , [배송지역] ) desc
제가 아는 범위내에서는 COMPUTE절이면 가능할 것 같습니다.