1

このようなテーブルがあります

このようなテーブルがあります

私はこのようなテーブルを達成しようとしています: ここに画像の説明を入力

これが私の質問でした。

select name,token , sum(qty) [Qty],sum(amount)from #temp 
 group by token,name

このようにしてみました..

 SELECT *
 FROM   (SELECT  name,
               qty,amt,
               Token
               FROM   #temp1
       ) AS D
       PIVOT(Sum(amt)
            FOR Token IN ([10],[20],[100],[40],[5])) AS P 

しかし、それは機能していません。どんな助けでも大歓迎です。

4

1 に答える 1

2

次のステートメントでそれを達成できると思います。

SELECT 
    [Name],
    SUM((CASE WHEN [Token] = 10 THEN [QTY] ELSE 0 END)) AS Token_10_QTY,
    SUM((CASE WHEN [Token] = 10 THEN [amt] ELSE 0 END)) AS Token_10_amt,
    SUM((CASE WHEN [Token] = 50 THEN [QTY] ELSE 0 END)) AS Token_50_QTY,
    SUM((CASE WHEN [Token] = 50 THEN [amt] ELSE 0 END)) AS Token_50_amt,
    SUM((CASE WHEN [Token] = 100 THEN [QTY] ELSE 0 END)) AS Token_100_QTY,
    SUM((CASE WHEN [Token] = 100 THEN [amt] ELSE 0 END)) AS Token_100_amt
FROM 
    #temp1
GROUP BY
    [Name]

QTYあなたの列とamtがであると仮定しますNOT NULL。何らかの形でお役に立てば幸いです。

于 2014-12-16T07:51:42.717 に答える