【发布时间】:2011-12-20 07:36:12
【问题描述】:
对令人困惑的问题标题表示歉意,但我不确定如何描述手头的问题。
我在 Oracle 9i 中有两个表:
Pricing
-------
SKU
ApplicableTime
CostPerUnit
Inventory
---------
SKU
LastUpdatedTime
NumberOfUnits
Pricing 包含在特定 Unix 时间对每个特定 SKU 项目成本的增量更新。例如,如果我有记录:
SKU ApplicableTime CostPerUnit
------------------------------------
12345 1000 1.00
12345 1500 1.50
,那么项目 12345 在 1000 到 1500 之间的任何时间为每单位 1.00 美元,在 1500 之后的任何时间为每单位 1.50 美元。
Inventory 包含 SKU、上次更新时间和单位数量。
我要做的是构造一个查询,以便对于 Inventory 中的每一行,我根据 SKU 加入两个表,我发现 Pricing.ApplicableTime 的最大值不大于 Inventory.LastUpdatedTime ,从Pricing获取该特定记录的CostPerUnit,并计算TotalCost = CostPerUnit * NumberOfUnits:
SKU TotalCost
-----------------------------------------------------------------------------------
12345 (CostPerUnit at most recent ApplicableTime <= LastUpdatedTime)*NumberOfUnits
12346 <same>
... ...
我该怎么做?
【问题讨论】: