【发布时间】:2019-11-25 02:38:43
【问题描述】:
我有以下表格:
订单(orderID、日期、shipID)
运费(shipID、价格)
PO(prodID、orderID、金额)
价格(prodID、fromDate、价格)
我需要检索每个订单 ID 和总价格,包括订单商品的成本 + 购买的运费。项目的成本必须是订单日期的项目成本,而不是最近日期。 Price 表存储从特定日期开始的产品的不同价格(fromDate 属性)。因此,产品在第 d 天的价格是具有最大 fromDate 值 f 的条目中的价格,使得 f ≤ d。我知道我可以使用命令 max(fromDate) 来检索项目的最新价格,但是,我不知道如何获取某个日期的价格。到目前为止,这是我的代码:
SELECT o.orderId, SUM(pr.price) + SUM(s.price) orderCost
FROM "Order" o
INNER JOIN Shipping s
ON o.shipId = s.shipId
INNER JOIN PO po
ON po.orderId = o.orderId
INNER JOIN Price pr
ON pr.prodId = po.prodId
GROUP BY o.orderId;
【问题讨论】:
标签: sql sql-server