如何按日期获取最后一个项目价格

wsewodh2  于 2021-07-27  发布在  Java
关注(0)|答案(1)|浏览(284)

我有三张table在玩:
订单头(id,日期),
订单详细信息(id、oh\ id、项目类型、项目代码、价格)
项目详细信息(项目类型、项目代码、项目名称、项目条形码)
我要把所有不同的东西都装在t.od上,但最后的价格要在日期之前。表之间同名的字段是连接,in t\u od(oh\u id)是与t\u oh(id)的连接。
我需要从t.oh得到t\U od中每一个不同项目的最新价格。我现在要说的是:

SELECT T_OD.Item_Type, T_OD.Item_Code, T_Item.Item_Name, T_Item.Item_Barcode, T_OD.Price
FROM T_OD
LEFT JOIN T_OH ON T_OD.OH_ID=T_OH.ID
LEFT JOIN T_Item ON T_Item.Item_Type=T_OD.Item_Type AND T_Item.Item_Code=T_OD.Item_Code
ORDER BY T_OH.DATE DESC
stszievb

stszievb1#

您似乎只需要前两个表就可以获得每件商品的最新价格。不幸的是,我认为firebird 2.5不支持窗口功能,因此:

select od.item_code, od.price
from t_od od join
     t_oh oh
     on oh.id = od.oh_id
where oh.date = (select max(oh2.date)
                 from t_oh oh2 join
                      t_od od2
                      on oh2.id = od2.oh_id
                 where od2.item_code = od.item_code 
                );

相关问题