簡體   English   中英

超過5個表的SQL查詢

[英]SQL Query over 5 tables

我在模型中有四個表。 這些表是:

Clients --> client_id, name
User --> user_id;user_name,client_id (FK Clients),
Products --> product_id;product_name,client_id (FK Clients)
Orders --> order_id;user_id (FK User),
OrderPos --> order_pos_id;order_id (FK Orders);quantity;product_id (FK Products)

這意味着,不同的客戶端具有不同的產品,並且屬於一個客戶端的每個用戶都可以訂購也屬於該客戶端的那些產品。

為了以以下方式(每個客戶端)獲取結果,查詢將如何進行?

User | ProduktnameX | ProduktnameXY | ProduktnameXYZ | ...
Tim  | 0            | 12            | 5
Tom  | 0            | 0             | 0
Jim  | 1            | 23            | 4

我想顯示每個客戶端的所有產品和每個客戶端的所有用戶。 然后在此列表中,我要顯示哪個用戶已訂購了每種數量的可用產品(來自“訂購”)...

SELECT c.client_id, c.name, p.product_id, p.product_name, sum(op.quantity) as product_quantity
FROM Clients AS c
JOIN User AS u ON u.client_id = c.client_id
JOIN Orders AS o ON o.user_id = u.user_id
JOIN OrderPos AS op ON op.order_id = o.order_id
JOIN Products AS p ON p.product_id = op.product_id
GROUP BY c.client_id, c.name, p.product_id, p.product_name;

然后使用報告工具(例如SSRS或其他工具)顯示矩陣/交叉表/數據透視表,在列上按product_idproduct_name (顯示名稱)分組,在行中按客戶分組,在中間按product_id分組。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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