1

我应该建立一个查询来显示产品是否第一次通过了质量测试。例如,如果产品# 1234 未通过第一次测试,则不显示该值。我正在运行 SQL Server 2005。我在想可能使用COALESCE语句或 case when 语句,任何帮助将不胜感激。这是一些示例数据:

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
4

2 回答 2

3

仅显示第一个结果,并且仅当第一个结果是“通过”时。

select *
  from (
select *, rn=row_number() over (partition by [product#] order by [datetime] desc)
  from tests
     ) x
 where rn=1 and result = 'pass';
于 2012-10-31T02:40:24.703 回答
2

你不能选择 where test_result = 'pass' 吗?也许我误解了你的问题

于 2012-10-31T02:23:59.313 回答