SQL查询 - 卡在以下场景中:

时间:2014-08-29 12:40:51

标签: sql sql-server

有没有人知道如何解决这个问题:

我的情况是我有CustomerTable, OrderTable, ItemsTable and DeliveryTable

客户可以下许多订单 订单可以包含许多项目

然而,这就是问题所在,如果我让1个项目,20..我收到15这些项目的数量,并希望将15/20发送到顾客。目前我可以将DeliveryID分配给单个项目,但其中包含所有20

所以我的问题是我需要一张中间表还是我在这里找不到明显的方法?

1 个答案:

答案 0 :(得分:1)

  • 客户可以有多个订单
  • 订单可以有多个订单行(项目)
  • 订单行可以有多条投放广告
  • 交货可以有多个交货期(甚至可能有不同的交货期) 订单)

然后,您可以通过提取所有投放线来查找订单行是否已完成。

Select 
    ( select name from items where id = ol.itemid ) as itemname, 
    ol.quantity as quantity_ordered,
    ( select sum(quantity) from deliverylines dl where dl.olid = ol.id ) as quantity_delivered
from orderlines ol 
where orderid = <id>;