我应该构建一个查询,显示产品是否第一次通过质量测试。例如,如果产品#1234未通过第一次测试,则不显示该值。我正在运行SQL Server 2005.我在想可能使用COALESCE
语句,或者在语句的情况下,任何帮助将不胜感激。这是一些示例数据:
product# test result datetime
1102494 Fail 20111129:07:57:50.203
1102494 pass 20111130:16:48:28.140
1102496 pass 20111129:11:09:32.140
1102498 pass 20111129:08:21:10.218
答案 0 :(得分:3)
仅显示第一个结果,并且仅在第一个结果是“通过”时显示。
select *
from (
select *, rn=row_number() over (partition by [product#] order by [datetime] desc)
from tests
) x
where rn=1 and result = 'pass';
答案 1 :(得分:2)
你不能选择test_result ='pass'的位置吗?也许我误解了你的问题