我正在使用SQL Server 2008,我有一个名为" AgDate"有4列如下所示:
Date ID One Two
2011-01-01 A1 Yes
2011-01-01 A1 Yes
2011-01-02 A1 Yes
2011-01-03 A1 Yes
2011-01-03 A2 Yes
我需要编写一个查询,该查询只会返回相同日期的行#34;是"在专栏" One"和"两个"。对于此示例,查询将仅返回前两行,因为它们是相同的日期并且具有"是"两列。如果可能的话,我希望能够针对特定的日期范围运行查询?任何帮助是极大的赞赏。 感谢
答案 0 :(得分:1)
以下是使用where
子句中的条件执行此操作的一种方法:
select a.*
from agdate a
where exists (select 1 from agdate a2 where a2.date = a.date and a2.one = 'yes') and
exists (select 1 from agdate a2 where a2.date = a.date and a2.two = 'yes');
这是标准SQL,因此它应该在任何数据库中运行。