2017-02-26 8 views
1

私はSQLでピボットを使うのがとても新しいので、これを試してみたいと思います。 ご協力いただければ幸いです。 (Northwindデータベース)見出しの列1と行2の列2をピボットする

私はTotalOrdersの上にlastnameをピボットしようとしています。 最後の名前は、カラム1にあり、総受注がやろうとしCOLUMN2に

lastname TotalOrders 
--------------------- 
Buchanan  42 

Callahan 104 

Davolio  123 

Dodsworth 43 

Fuller  96 

King   72 

Leverling 127 

Peacock  156 

Suyama  67 

/*以下のとおりです。*/

[lastname] [Buchanan] [Callahan]... 

TotalOrders  42   104 ... 

/これは私がこれまで持っているものです。/ [コード]

SELECT lastname, COUNT(*) TotalOrders 
    FROM employees join orders 
    ON employees.employeeid = orders.employeeid 
    GROUP BY lastname 

PIVOT 
(
    COUNT(TotalOrders) 
    FOR lastname IN ([Buchanan], [Callahan], [Davolio], [Dodsworth] 
        ,[Fuller], [King], [Leverling], [Peacock], [Suyama]) 

) AS P; 

[/コード]

答えて

0

あなたが接近していました。結合クエリをサブクエリに入れ、ピボットでMAX(またはMIN)を使用します。

select * 
from (
    SELECT lastname, COUNT(*) TotalOrders 
    FROM employees join orders 
    ON employees.employeeid = orders.employeeid 
    GROUP BY lastname 
) t 
PIVOT 
(
    MAX(TotalOrders) 
    FOR lastname IN ([Buchanan], [Callahan], [Davolio], [Dodsworth] 
        ,[Fuller], [King], [Leverling], [Peacock], [Suyama]) 

) AS P; 
+0

ありがとうGURV!あなたはすごいね!あなたよりもう一度! –

関連する問題