读书人

工序显示有关问题

发布时间: 2013-07-04 11:45:44 作者: rapoo

工序显示问题
现有一张log表,记录每个产品在每一道工序的通过情况,如下:

id         sn         process       status
1 001 p1 pass
2 001 p2 fail
3 001 p2 fail
4 001 p2 pass
5 001 p3 fail
6 001 p3 pass
7 001 p4 fail


p1,p2,p3,p4代表工序,工序个数不固定,001这个产品在p2工序失败了两次,第三次成功;在p3工序失败一次,第二次成功;在p4工序失败。

现在的需求是:根据sn查询该表,每个工序只显示最新一条记录,且中间工序失败的不显示。
得到类似于如下的结果:

id         sn         process       status
7 001 p4 fail
6 001 p3 pass
4 001 p2 pass
1 001 p1 pass

请各位大牛帮帮忙,感激! SQL
[解决办法]
SELECT *
FROM TB A
WHERE NOT EXISTS(SELECT 1 FROM TB B WHERE A.sn = B.sn AND A.id < b.id AND A.process = b.process)
and A.sn = '001' --加上你的条件即可。

读书人网 >SQL Server

热点推荐