多次阅读最新记录

时间:2016-02-26 15:12:55

标签: c# sql

Tables: Wo_History /*examples would be in here*/, WO

我正在尝试访问SQL Server Express中Workorders的多条记录的最新记录。这方面的一个例子是......

ID   Date        Action        Status
1    2016-1-11   'Reopen'      'Not Completed'
1    2016-1-10   'Completed'   'Completed'
1    2016-1-9    'Opened'      'Not Completed'

2    2016-1-20   'Completed'   'Completed'
2    2016-1-19   'Saved'       'Not Completed'
2    2016-1-18   'Opened'      'Not Completed'

如果不是因为工作订单可以重新打开,那么我可以搜索“已完成”。在这种情况下,我的最终结果将是......

ID   Date        Action        Status
1    2016-1-11   'Reopen'      'Not Completed'

2    2016-1-20   'Completed'   'Completed'

所以我知道Workorder 1没有完成,Workorder 2已经完成。我无法弄清楚如何仅使用一个查询获得这些结果,而不是一次只搜索一个工作订单。感谢。

编辑1
我看了回答这个问题的问题...... Where clause on joined table。在我的案例中,我对它的工作有点困惑。我尝试了几件事,使用我的桌子的例子会很精彩。我尝试了SELECT DISTINCT(来自Gordon Linoff)和INNER JOIN(来自Bux)并没有取得多大成功。感谢。

编辑2 我在这里找到了一个答案... How to get unique set of rows from SQL where uniqueness is defined by 2 columns? ...来自用户Andomar

SELECT * FROM (SELECT ROW_NUMBER() OVER (PARTITION BY WO_Num ORDER BY DateTime DESC) AS rn, * FROM WO_History)sub WHERE rn = 1 AND Status = ?

我添加了'AND St​​atus =?'和'?'是完成还是未完成,具体取决于我想要找到的那个。

编辑3

我不知道是否有人会看到这个,但我要感谢Tom H做了无用的复制而没有帮助。再次感谢汤姆: - )

0 个答案:

没有答案