2013-02-25 40 views
0

我怎样才能在一个表中的不同日期,其中R.TypeofDayID = 2,它应该不包括与R.TypeofDayID日期= 12种条件下在一个SQL查询同一列

我可以得到所有的使用下面的查询R.TypeofDayID = 2的不同日期,但我不知道如何添加条件来获取TypeofDayID = 2的日期,并且日期在任何行中都不应该有TypeofDayID = 1。

Select count(distinct(R.Date)) from RepInfo R 
where R.TypeofDayID = 2 and Month(R.Date) = 2 and Year(R.Date) = 2013 

我希望我很清楚。这是在SQL Server 2005中。预先感谢您!

回答

0
Select R.Date, count(*) as cnt 
from RepInfo R 
where Month(R.Date) = 2 and Year(R.Date) = 2013 
group by R.Date 
having sum(case when TypeofDayID <> 2 then 1 else 0 end) = 0 
+0

我觉得having子句应具备的条件'TypeofDayID = 1'。 – 2013-02-25 17:15:21

+0

嗯。但是,如果我添加,我需要指定'TypeofDayID = 2'的where子句,然后它将无法工作。 – 2013-02-25 17:16:54

0

为什么在select语句中使用COUNT()函数?如果您希望输出成为不同日期的列表?你会改变您选择这样的事情让你期望的结果:

SELECT DISTINCT(R.Date)

+0

我其实需要计算不同的日期!谢谢。 – Ram 2013-02-25 17:18:55

相关问题