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 Status =?'和'?'是完成还是未完成,具体取决于我想要找到的那个。
编辑3
我不知道是否有人会看到这个,但我要感谢Tom H做了无用的复制而没有帮助。再次感谢汤姆: - )