【发布时间】:2018-04-16 19:03:52
【问题描述】:
我需要通过每个唯一的 Sup_Num 和 CONTAINER_CODE 组合查询 DB2 表以获取表中存储的最新数据。我遇到的问题是我无法弄清楚如何只获取最新日期(INSERTED_DT)的数据。我尝试在 INSERTED_DT 字段上使用 Max() 函数,但它给了我在不使用 Max() 函数时得到的完全相同的结果。当我搜索 Max() 函数使用示例时,我没有看到类似的东西,所以我希望这里有人能提供帮助。
我使用的查询是这样的:
Select Distinct
SupLookup.SUPPLIER_NO concat SupLookup.SUPPLIER_LOCATION AS Sup_Num,
SupLookup.CONTAINER_CODE,
AllocationType.ALLOC_TYPE_DESC,
Allocation.ALLOC_QTY,
Allocation.SAFE_STOCK_QTY,
Allocation.ALLOC_QTY + Allocation.SAFE_STOCK_QTY AS CALC_TOT_ALLOC_REQ_QTY,
SupLookup.ALLOC_REQ_QTY,
SupLookup.TOT_ALLOC_REQ_QTY,
SupLookup.DISC_QTY,
SupLookup.FILL_PERCENT,
MAX(SupLookup.INSERTED_DT) as Insert_DT
From RCX.RXSAL1 Allocation
Inner Join rcx.RXALT1 AllocationType on Allocation.ALLOC_TYPE_ID = AllocationType.ALLOC_TYPE_ID
Left Join rcx.RXPIR1 SupLookup on Allocation.SUPPLIER_ID = SupLookup.SUPPLIER_ID And allocation.CONTAINER_TYPE_ID = SupLookup.CONTAINER_TYPE_ID
Where Allocation.PLANT_ID= '50000036'
Group by
SupLookup.SUPPLIER_NO concat SupLookup.SUPPLIER_LOCATION,
SupLookup.CONTAINER_CODE,
AllocationType.ALLOC_TYPE_DESC,
Allocation.ALLOC_QTY,
Allocation.SAFE_STOCK_QTY,
Allocation.ALLOC_QTY + Allocation.SAFE_STOCK_QTY,
SupLookup.ALLOC_REQ_QTY,
SupLookup.TOT_ALLOC_REQ_QTY,
SupLookup.DISC_QTY,
SupLookup.FILL_PERCENT
ORDER BY Sup_Num ASC
我得到的是这样的:
但我想要的是它只为 Sup_Num 和 Container_Code 的每个组合选择最近的日期,如下所示:
-编辑-
简单的 max/group by 子查询 here 在这种情况下失败(服务器超时)。有人曾建议过,但后来删除了该帖子。
【问题讨论】: