SQL-如何在只返回一行的情况下检查一列的多个值?

SQL-如何在只返回一行的情况下检查一列的多个值?,sql,sql-server,reporting-services,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

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

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

      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
我只想返回statusid为1的行,但我还想检查每个applicationid是否存在statusid为2的行。因此,上表中所需的查询将生成:

     123 3-18-2013
     125 4-1-2013
任何帮助都将不胜感激。如果需要更多信息,请告诉我。我希望在包含必要数量的信息的同时,尽可能地简短和简单

谢谢你抽出时间


编辑:更正所需结果部分

此问题称为关系划分

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 
试试看

 Select * From TableName t
 Where statusID = 1
    And Exists(Select * From tablename
               Where applicationID = t.applicationID 
                  And statusID = 2)