데이터베이스 개발자 질문과 답변 게시판

데이터베이스 개발/운영 관련 질문과 답변을 올리는 게시판입니다. 궁금하신 내용을 이곳에서 문의하시면 SQLER 분들의 답변을 받으실 수 있습니다. 문의를 하실때에는 최근 작업하신 특이 사항이나, 장애 발생 전 상황을 상세히 올려 주시면 답글을 적어주시는 SQLER분들의 답변이 더 정확할 수 있으니 도움 되시길 바랍니다. 쿼리 문의일 경우, 실제 문제가 재현되는 테이블생성, 샘플데이터 생성 쿼리를 함께 올려 주시면 더 빠르고 정확한 쿼리 문의 응답이 가능합니다.

Pivot , Rollup 질문입니다.

희망나라 2016.01.16 15:59 Views : 2719

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
9119 라이센스 관련 문의 [2] 장성원_305526 2016.01.18 2246
9118 오라클 날짜비교관련 답변부탁드립니다 아싸헛스윙 2016.01.18 2142
9117 MSSQL 2012에서 단축키 질문 [1] NoSkyIstheLimit 2016.01.17 2314
» Pivot , Rollup 질문입니다. 희망나라 2016.01.16 2719
9115 도움좀 주세요... [3] 아이워너야근 2016.01.16 1697
9114 게시판 쿼리좀봐주세요(오라클입니다.) [2] 올해는2016 2016.01.15 3199
9113 Select 할때 tag를 추가 해서 사이트에서 적용을 하고 싶은데요.. . [1] DOOLLY 2016.01.15 1683
9112 group by 질문입니다. [2] 푸학학 2016.01.15 1937
9111 주석을 제외한 순수 SP 내용만 알아내는 방법이 있을까요? [3] 퀄러 2016.01.15 1986
9110 [질문] 주소 검색[시/군/구/동 추출 문의] [1] 토깽이아빠 2016.01.15 2410
9109 간단한 문법질문(초보) [5] 후알유? 2016.01.13 2841
9108 특정계정 프로시져 실행권한은 주되 저장로직은 안되게 하는방법? [2] 착한넘 2016.01.13 2491
9107 SSIS에 oracle oleDB로 연결 후 select 시 결과값이 나오지 않습니다. 뉴늄 2016.01.12 2341
9106 리턴 [3] 마힐링 2016.01.12 2603
9105 Sql case when else end 문 질문 [2] 곰요 2016.01.11 2898
9104 Linked Server를 이용한 Oracle과의 동기화 Trigger가 동작하지 않습니다. [2] 꼬셔죠 2016.01.10 3827
9103 테이블 불러오고 순위매기는거 질문좀 드릴게요 [2] 아이워너야근 2016.01.10 2038
9102 보안패치후 서버가 느려요? [2] 송영오_293188 2016.01.09 2283
9101 DB2 쿼리 문의드립니다. [2] Nye 2016.01.08 2446
9100 커서 존재 유무를 알수 있을까요? [2] 유리의성 2016.01.08 3270





XE Login