[英]Beginner Oracle 11g SQL - Create Pivot Table from joining multiple tables
我有多個表,每個表都具有將它們彼此連接的FK關系。 我需要使用某些表中的詳細信息創建數據透視表。
Region Table
Region_ID|Region_Description
State Table
State_ID|State_Description|Region_ID_FK
Order Table
Order_ID|Order_Date|State_ID_FK
Category Table
Category_ID|Category|Description|Order_ID_FK
我正在基於FK使用自然聯接來聯接所有表。
我需要確定每個區域的每個類別中有多少個訂單。
結果表應如下所示:
Category|Region1|Region2|Region3|Total
Sporting 1 0 3 4
ETC 0 2 1 3
SELECT c.Category,
COUNT( CASE r.Region_ID WHEN 1 THEN 1 ELSE NULL END ) AS Region1,
COUNT( CASE r.Region_ID WHEN 2 THEN 1 ELSE NULL END ) AS Region2,
COUNT( CASE r.Region_ID WHEN 3 THEN 1 ELSE NULL END ) AS Region3,
COUNT( CASE r.Region_ID WHEN 4 THEN 1 ELSE NULL END ) AS Region4
FROM REGION r
INNER JOIN
STATE s
ON (r.Region_ID = s.Region_ID_FK)
INNER JOIN
ORDER o
ON (s.State_ID = o.State_ID_FK)
INNER JOIN
CATEGORY c
ON (o.Order_ID = c.Order_ID_FK)
GROUP BY c.Category
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.