2016-10-05 3 views
0

내 쿼리 PIVOT 연산자에서 허용되지 않습니다접두어 열은 다음과 같이

select * from 
    (
    SELECT ShoperCompCode, Name, Qty, Value, Tb, ASP, UPT, AST, CTS, class2cd, CashSaleQty FROM MBDSR 
    )A 
PIVOT (AVG(CashSaleQty) FOR class2cd IN ("")) AS PVT 

테이블 아래로 : 그것은 "청바지가 될 것 wheather를 이제

ShoperCompCode Name Qty Value Tb ASP  UPT AST CTS class2cd CashSaleQty 
MB1   TEST 35 77064 6 2201.83 5.83 12844 0.44 Jeans 1 
MB2   TEST2 5 11095 2 2219 2.5 5547.5 0.06 T-shirt 2 
MB3   TEST3 0 0  0 0  0  0  0  Jeans 3 

는, 내가 class2cd 값을 모르는 "또는"T 셔츠 "

즉 (Class2Cd 데이터는 그 동적 것이다 정적 아니다) ..

+0

어떤 dbms를 사용하고 있습니까? – jarlh

+0

MS SQL SERVER ... –

답변

0

CH 문제점을 해결 한 내 업데이트 된 코드를 확인하십시오.

DECLARE @cols AS NVARCHAR(MAX),@query AS NVARCHAR(MAX) 

    Select @cols = STUFF((SELECT DISTINCT ',' + QUOTENAME(Class2Cd) 
       from MBDSR 
     FOR XML PATH(''), TYPE 
     ).value('.', 'NVARCHAR(MAX)') 
    ,1,1,'') 

set @query = 'SELECT * from 
     (
      SELECT ShoperCompCode, Name, Qty, Value, Tb, ASP, UPT, AST,  CTS, class2cd, CashSaleQty FROM MBDSR 
     ) x 
     pivot 
     (
      AVG(CashSaleQty) FOR class2cd IN (' + @cols + ') 
     ) p ' 

execute(@query);