我很难过。如果最近创建的 2 条记录是“通过”并且 LEVEL 值不同,我需要通过 ProductId 返回 TRUE 或 FALSE。
PRODUCTID CREATEDATE STATUS LEVEL
ABC 1/3/2016 fail 1
ABC 1/4/2016 pass 2
ABC 1/5/2016 pass 3
DEF 1/1/2016 pass 1
DEF 1/2/2016 pass 1
DEF 1/10/2016 pass 1
DEF 1/11/2016 fail 1
GHI 12/29/2015 pass 1
GHI 12/30/2015 fail 1
JKL 1/1/2016 pass 1
JKL 1/2/2016 pass 1
根据以上值,将返回以下内容:
PRODUCTID RUNSTATUS
ABC TRUE
DEF FALSE
GHI FALSE
JKL FALSE
任何帮助是极大的赞赏。
- 更新后的附加逻辑。
我添加了 LEVEL 列。查询需要按上述方式返回。
如果最近创建的 2 条记录为“通过”并且 LEVEL 值不同,则 ProductId 返回 TRUE 或 FALSE。
如果一个 ProductID 总共只有一个记录,并且是 PASS,那么它就是 FALSE。需要连续两次“通过”。
下面的查询是这样工作的:
询问:
请参阅SQL 小提琴。
输出:
另一种使用LAG函数的解决方案:
询问: