通过过滤数据挂载sql查询

时间:2017-08-31 16:19:23

标签: sql

我正在尝试整理一份报告,我需要列出状态为EXCLUDED的文档。通常有几个具有相同NF但具有多个STATUS的记录。我需要考虑的是,某个NF的最后记录总是有排除状态,如果某个NF的最后一个记录与EXCLUDED不同,它不应该出现在我的报告中。

我有以下查询:

SELECT id,nf,status,date FROM documents

例如,我有以下结果:

enter image description here

它应该如何:

enter image description here

任何人都可以帮助我吗?

2 个答案:

答案 0 :(得分:2)

如果我正确地关注您,您需要这样:

SELECT MAX(ID), NF, Status, MAX(DATE)
FROM documents
WHERE status = 'EXCLUDED'
GROUP BY NF, Status

这会根据您的样本数据进行假设。如果DATEID并非总是按顺序增加,则无效。如果是这种情况,还有其他方法可做,但除此之外,这是最简单的方法。

答案 1 :(得分:1)

也许是这样的?

SELECT MAX(ID) AS ID, NF, STATUS, MAX(DATE) AS DATE
FROM documents
WHERE STATUS = 'EXCLUDED'
GROUP BY NF, STATUS

这会给你:

Result