--쿼리 삽질 하다가 결국질문 드립니다.
-- Test 테이블 데이타 입니다.
brench barcode itemcount
테스트1 8809182000011 50.00
테스트1 8809182000028 60.00
테스트1 8809182000042 70.00
테스트2 2400000000013 100.00
테스트2 2400000000020 200.00
테스트3 8809182000011 100.00
테스트3 8809182000028 200.00
DECLARE @Prod varchar(2000)
SET @Prod = ''
SELECT @Prod = @Prod + '[' + brench + '],'
FROM (SELECT Distinct brench FROM Test) A
SET @Prod = LEFT(@Prod, LEN(@Prod) - 1)
Exec ('SELECT barcode,' + @Prod + ' FROM (select barcode, brench, itemcount from Test) b
PIVOT (SUM(itemcount) FOR brench IN (' + @Prod + ')) AS PVT0')
--결과 및 질문
barcode 테스트1 테스트2 테스트3 (합계를 표현 할려면 쿼리을 어떻게 해야 하나요.?)
2400000000013 NULL 100.00 NULL 100 -> ?
2400000000020 NULL 200.00 NULL 200
8809182000011 50.00 NULL 100.00 150
8809182000028 60.00 NULL 200.00 260
8809182000042 70.00 NULL NULL 70
-- 이문장을 실행하면 (5개 행이 영향을 받음) 이라고 메세지 나옵니다.
--하지만 select * from #temp0 해 보면 "개체 이름 '#temp0'이(가) 잘못되었습니다." 라고 나옵니다.
--TempTable 에 Batch 할려면 어떻게 해야 되나요.?
Exec ('select a.* into #temp0 from (SELECT barcode,' + @Prod + ' FROM (select barcode, brench, itemcount from Test) b
PIVOT (SUM(itemcount) FOR brench IN (' + @Prod + ')) AS PVT0) as a')
매번 질문만 하고 도움받아가는 일인으로서 항상 감사드립니다.
좋은 하루 되세요.