编写SQL查询

时间:2014-04-30 23:23:12

标签: sql sql-server-2008

我正在使用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"和"两个"。对于此示例,查询将仅返回前两行,因为它们是相同的日期并且具有"是"两列。如果可能的话,我希望能够针对特定的日期范围运行查询?任何帮助是极大的赞赏。 感谢

1 个答案:

答案 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,因此它应该在任何数据库中运行。