2016-10-05 11 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で解決されてい私の更新されたコードをeckしてください。

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);   
関連する問題