SQL - 如何在只返回一行的同时检查一列的多个值?

Sco*_*S. 3 sql sql-server reporting-services

对不起,如果问题措辞怪异.

我正在写一份报告,我有一张表有这样的字段....

      applicationID statusid statuscreationdate

      123                  1  3-18-2013
      123                  2  3-27-2013
      124                  1  3-29-2013
      125                  1  4-1-2013
      125                  2  4-3-2013
Run Code Online (Sandbox Code Playgroud)

我只想返回statusid为1的行但是我还要检查每个applicationid是否存在statusid为2.因此,上表中的所需查询将产生:

     123 3-18-2013
     125 4-1-2013
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激.如果需要更多信息,请告诉我.我希望尽可能简短,简洁,同时包含必要的信息量.

谢谢你的时间.

编辑:更正了所需的结果部分

Joh*_*Woo 6

这个问题被称为 Relational Division

SELECT  applicationID, MAX(statuscreationdate) date
FROM    TableName
WHERE   statusID IN (1, 2)             -- list of statusID 
GROUP   BY applicationID 
HAVING  COUNT(DISTINCT statusID) = 2   -- no of statusID 
Run Code Online (Sandbox Code Playgroud)