【发布时间】:2020-01-10 17:08:13
【问题描述】:
我有 4 个如下所示的表:第一个表“订单”
orderNumber orderDate requiredDate shippedDate status comments customerNumber
10166 21/10/2003 30/10/2003 27/10/2003 Shipped NULL 462
10321 4/11/2004 12/11/2004 7/11/2004 Shipped NULL 462
10167 23/10/2003 30/10/2003 Cancelled Cancelled 448
10291 8/9/2004 12/9/2004 14/9/2004 Shipped NULL 448
第二张表'OrderDetails'
orderNumber productCode quantityOrdered priceEach orderLineNumber
10166 s18_1234 43 136 1
10166 s18_1235 26 72 2
10321 s18_4524 19 5 1
10321 s18_4522 14 5 2
10167 s18_1662 34 102 1
10167 s18_4757 12 67 2
10291 s18_3894 10 67 1
10291 s18_3515 50 67 2
第三张表“付款”
customerNumber checkNumber paymentDate amount
462 JM555205 8/11/2003 7720
462 PW176846 27/11/2004 165
448 AZ384638 30/9/2004 4020
第四张表'客户'
customerNumber CustomerName
462 Gregg
448 Bryan
通过这 4 个表,我希望提出一个 SQL 语句,可以显示 orderNumber、该订单的总付款、状态和收到的金额。如下表所示,用于跟踪客户仍欠/取消的金额以及已收到的金额。
orderNumber totalAmount status amountReceived
10166 7720 Shipped 7720
10321 165 Shipped 165
10167 4272 Cancelled 0
10291 4020 Shipped 4020
有点长的问题,感谢任何回复。非常感谢
【问题讨论】:
-
您忘记了您尝试的 SQL。
-
作为人类,您将如何针对订单/订单行进行付款?这些表之间没有键,因此需要提供一些逻辑,例如“我将支票金额应用于支票日期之前发生的最旧的未付款订单行项目”
标签: sql