Pivot , Rollup 질문입니다.

희망나라 2016.01.16 15:59 Views : 2828

select * into dbo.tSample
from (
values  (N'테스트1',8809182000011,50.00), (N'테스트1',8809182000028,60.00), (N'테스트1',8809182000042,70.00)
     ,(N'테스트2',2400000000013,100.00), (N'테스트2',2400000000020,200.00), (N'테스트3',8809182000011,100.00)
     ,(N'테스트3',8809182000028,200.00)
) as a (cBrench,cBarCode,cItemCnt)
go

declare
@vProd varchar(2000) = ''
,@vProd2 varchar(2000)
,@vProd3 varchar(2000)
,@vSQL varchar(max)

select @vProd += ',['+ cBrench +']' from (select distinct cBrench from dbo.tSample) as a

set @vProd = stuff(@vProd,1,1,'')
set @vProd2 = replace(replace(replace(@vProd,',','+'),'[','isnull(['),']','],0)') +' as [합계]'
set @vProd3 = replace(replace(@vProd,'[','isnull(Sum('),']','),0)')   -- Rollup을 하기위한 필드 구성 변수                  

print @vProd
print @vProd2
print(@vProd3)   

set @vSQL = '
select  cBarCode, '+ @vProd +', '+ @vProd2 +'
from (select cBarCode, cBrench, cItemCnt from dbo.tSample) as a
pivot (sum(cItemCnt) for cBrench in ('+ @vProd +')) as pvt '

print @vSQL

--exec (@vSQL)
drop table ##temp
Exec('select * into ##temp from ('+@vSQL+') as a ') -- 전역변수에 결과을 담는다.
select * from ##temp                                                   --확인+

 

select cBarCode
      --, SUM(테스트1) 테스트1, SUM(테스트2) 테스트2, SUM(테스트3) 테스트3, SUM(합계) 합계                           --1
      --,isnull(Sum(테스트1),0), isnull(Sum(테스트2),0), isnull(Sum(테스트3),0)                                                               ---2
      ,@vProd3  -- 쿼리 결과 2400000000013, isnull(Sum(테스트1),0), isnull(Sum(테스트2),0), isnull(Sum(테스트3),0)--3
from ##temp group by Rollup(cBarCode)

 

도움을 받아 Pivot 동적쿼리을 사용중에 있습니다.(도움 주셔서 감사합니다.)

여기에 Rollup을 하기위해 1,2,3 코드을 각각 실행해 봅니다.

1, 2 는 잘 작동합니다.

3번은 쿼리결과값이 위의 내용처럼 나옵니다. @vProd3 의 내용이 2 번하고 같은데 왜 저렇게 나오는 건가요.?

동적쿼리문 내에서 Rollup을 구현 할수가 있을까요. 결과값이 당췌....?

감사합니다.

좋은하루 보내세요.

 

 

 

 

No. Subject Author Date Views
Notice SQL강좌: 챗GPT와 함께 배우는 SQL Server 무료 강좌 목차와 소개 (2023년 9월 업데이트) 코난(김대우) 2023.08.18 38055
Notice Python 무료 강좌 - 기초, 중급, 머신러닝(2023년 6월 업데이트) 코난(김대우) 2021.01.01 20666
9123 함수내에서 동적쿼리를 실행시킬수 있나요? 집에 갈수잇도록 도와주소서 nemesis82 2016.01.19 2556
9122 plan 변경 문의 [10] 방자 2016.01.19 2649
9121 날짜 출력시 BETWEEN 대체 질문입니다. [5] sincie 2016.01.19 3481
9120 한 테이블 내 DB 싱크 질문.. [2] Sinlay 2016.01.19 2499
9119 라이센스 관련 문의 [2] 장성원_305526 2016.01.18 2312
9118 오라클 날짜비교관련 답변부탁드립니다 아싸헛스윙 2016.01.18 2200
9117 MSSQL 2012에서 단축키 질문 [1] NoSkyIstheLimit 2016.01.17 2350
» Pivot , Rollup 질문입니다. 희망나라 2016.01.16 2828
9115 도움좀 주세요... [3] 아이워너야근 2016.01.16 1829
9114 게시판 쿼리좀봐주세요(오라클입니다.) [2] 올해는2016 2016.01.15 3298
9113 Select 할때 tag를 추가 해서 사이트에서 적용을 하고 싶은데요.. . [1] DOOLLY 2016.01.15 1742
9112 group by 질문입니다. [2] 푸학학 2016.01.15 1987
9111 주석을 제외한 순수 SP 내용만 알아내는 방법이 있을까요? [3] 퀄러 2016.01.15 2093
9110 [질문] 주소 검색[시/군/구/동 추출 문의] [1] 토깽이아빠 2016.01.15 2520
9109 간단한 문법질문(초보) [5] 후알유? 2016.01.13 2933
9108 특정계정 프로시져 실행권한은 주되 저장로직은 안되게 하는방법? [2] 착한넘 2016.01.13 2547
9107 SSIS에 oracle oleDB로 연결 후 select 시 결과값이 나오지 않습니다. 뉴늄 2016.01.12 2438
9106 리턴 [3] 마힐링 2016.01.12 2700
9105 Sql case when else end 문 질문 [2] 곰요 2016.01.11 2961
9104 Linked Server를 이용한 Oracle과의 동기화 Trigger가 동작하지 않습니다. [2] 꼬셔죠 2016.01.10 3940





XE Login