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)