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

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

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

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

stszievb1#

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

  1. select od.item_code, od.price
  2. from t_od od join
  3. t_oh oh
  4. on oh.id = od.oh_id
  5. where oh.date = (select max(oh2.date)
  6. from t_oh oh2 join
  7. t_od od2
  8. on oh2.id = od2.oh_id
  9. where od2.item_code = od.item_code
  10. );

相关问题