我在模型中有四个表。这些表是:
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
我想显示每个客户端的所有产品和每个客户端的所有用户。然后在此列表中,我想显示哪个用户订购了每个可用产品的数量(来自订单)......
答案 0 :(得分:1)
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_id
和product_name
分组(显示名称),类似地行上的客户端和中间的product_quantity。