A)当商品出售,一个表将记录在列TYPE在列ID &一个“N”的“O”: -如何使用MAX与其他标准
SKU ID TYPE NR
-------------------------
HAB1122 O N 201211
B)当产品是返回,表将记录在列TYPE在列ID &一个“R”一个“O”: -
SKU ID TYPE NR
-------------------------
HAB1122 O R 201223
方案1
商品售出&后来返回。它随后被出售: -
SKU ID TYPE NR
-------------------------
HAB1122 O N 201211
HAB1122 O R 201223
HAB1122 O N 201245
HAB2233 O N 201263
HAB3344 O N 201303
HAB3344 O R 201341
使用SQL: -
Select SKU, max(NR)
from tableA
where SKU like ‘HAB%’ and ID = ‘O’
group by SKU
结果: -
SKU NR
----------------
HAB1122 201245
HAB2233 201263
HAB3344 201341
这是正确的结果,因为我想追查的最后NR无论货物是出售还是退回,都可以卖出。
如果我想跟踪与状态货物只卖出了下来,最后NR,预期的结果应该是: - 作为货物被退回&没有随后被卖不考虑
SKU NR
---------------
HAB1122 201245
HAB2233 201263
HAB3344。
我该如何更改SQL?
我正在使用DB2。它提示一个错误: - 未找到* LIBL类型* N中的NVL。 – Bob 2012-02-22 05:59:14
我相信你在DB2中使用'coalesce'而不是'nvl'。放手吧。 – 2012-02-22 06:03:28
我修改并执行了SQL语句。处理数据的时间太长了。事实上,它仍在运行。在此之前,生成结果需要不到2分钟的时间。 – Bob 2012-02-22 06:27:55