簡體   English   中英

初學者Oracle 11g SQL-通過聯接多個表創建數據透視表

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM