我有以下表格:预订、订单行、订单页眉、产品、客户。对这些表中的每一个进行一些解释:
- Reservations包含计费客户/产品组合的“保留”。
- Order-Lines包含订单的行项目详细信息,包括他们订购的产品和数量。
- Order-Header包含订单的标题信息,包括日期、客户和计费客户
- 产品包含产品详细信息
- 客户包含客户详细信息。
以下是带有相关字段和示例数据的表格:
Reservation
bill-cust-key prod-key qty-reserved reserve-date
10000 20000 10 05/30/2014
10003 20000 5 06/20/2014
10003 20001 15 06/20/2014
10003 20001 5 06/25/2014
10002 20001 5 06/21/2014
10002 20002 20 06/21/2014
Order-Item
order-num cust-key prod-key qty-ordered
30000 10000 20000 10
30000 10000 20001 5
30001 10001 20001 10
30002 10001 20001 5
30003 10002 20003 20
Order-Header
order-num cust-key bill-cust-key order-date
30000 10000 10000 07/01/2014
30001 10001 10003 07/03/2014
30002 10001 10003 07/15/2014
30003 10002 10002 07/20/2014
Customer
cust-key cust-name
10000 Customer A
10001 Customer B
10002 Customer C
10003 Customer D
Product
prod-key prod-name
20000 Prod A
20001 Prod B
20002 Prod C
20003 Prod D
我正在尝试编写一个查询,该查询将向我显示预订和订单项表中存在的客户/产品组合。一个小麻烦是我们有一个客户和一个计费客户。保留和订单标题表都包含客户,但订单项目表只包含客户。结果应显示计费客户。此外,同一个客户/产品组合可以有多个预订和订购项目,所以我想显示 qty-reserved 和 qty-ordered 的总和。
下面是我想要的输出的一个例子:
bill-cust-key cust-name prod-key prod-name qty-ordered qty-reserved
10000 Customer A 20000 Prod A 10 10
10003 Customer D 20001 Prod B 15 20
这是我尝试过的查询,似乎对我不起作用。
SELECT customer.cust-key, customer.cust-name, product.prod-key, prod.prod-name,
SUM(order-item.qty-ordered), SUM(reservation.qty-reserved)
FROM ((reservation INNER JOIN order-item on reservation.prod-key = order-item.product-key)
INNER JOIN order-header on reservation.bill-cust-key = order-header.bill-cust-key and
order-item.order-num = order-header.order-num), customer, product
WHERE customer.cust-key = reservation.bill-cust-key
AND product.prod-key = reservation.prod-key
GROUP BY customer.cust-key, customer.cust-name, product.prod-key, product.prod-name
我很抱歉这么长的帖子!我只是想确保我的基地被覆盖!