如何在两列中显示结果形成一个列不同的列资源

时间:2013-03-05 03:31:26

标签: sql

我尝试计算当前日期的记录并从日期列中传递日期

DATE

'2013-03-04 00:00:00'

'2013-02-04 00:00:00'

'2013-02-04 00:00:00'

如果今天是'2013-03-04 00:00:00'

结果应该是

CURRENT_DATE = 1 PASS_DATE = 2

我不知道如何从一个资源查询它,但在条件

的情况下不同
1st - date >= '2013-03-04 00:00:00'
2nd - date <  '2013-03-04 00:00:00'

请帮助

2 个答案:

答案 0 :(得分:1)

我建议在SELECT子句

中使用两个子查询
select
   (select count(*) from MyDates where DateValue < getdate()) as PastDate,
   (select count(*) from MyDates where DateValue >= getdate()) as CurrentDate

您可以将getDate()替换为日期参数或硬编码值,例如&#39; 2013-03-04&#39;如果你愿意的话。

答案 1 :(得分:0)

一种方法是查询所有日期并根据您的情况放置1 \ 0 然后再从表中再次查询列的总和。

SELECT sum([CURRENT_DATE]), sum([PASS_DATE])
FROM
(
  SELECT 
     ID,
     case when myDate >= getDate() then 1 else 0 end as [CURRENT_DATE],
     case when myDate < getDate() then 1 else 0 end as [PASS_DATE]
  FROM mytable

) as SourcTbl

这是一个SQL小提琴http://sqlfiddle.com/#!3/e9c19/8