Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
对5个表的SQL查询_Sql - Fatal编程技术网

对5个表的SQL查询

对5个表的SQL查询,sql,Sql,我有一个模型中的四张桌子。这些表格包括: 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 (

我有一个模型中的四张桌子。这些表格包括:

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)
这意味着,不同的客户拥有不同的产品,属于一个客户的每个用户都可以订购同样属于该客户的产品

查询必须如何进行,才能以以下方式获得结果(每个客户端)

我想显示每个客户端的所有产品和每个客户端的所有用户。然后在此列表中,我想显示哪个用户订购了每个可用产品的数量(来自订单)


使用报表工具(如SSR或任意),显示矩阵/交叉选项卡/支点,按“代码>产品”ID 和<代码>产品名> /COD>(显示名称)在列上,类似于行上的客户,在中间生成产品。p> 您可以通过许多不同的方式来实现这一点,使用GROUPBY、JOIN和SUBQUERES,但实际上这都是非常基本的。我建议你试着去学习它,而不是寻找直接的答案。试着提及你试过什么?这提醒我,有时去规范化可能会有所帮助。

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;