在不使用子选择的情况下,在一个select语句中对同一列查询2个日期范围?

时间:2014-04-17 16:54:04

标签: sql sql-server tsql

我正在创建一个报告,在此报告中,我需要一个与日期列相对的日期范围的输出。我还需要另一个与日期列相对的日期范围。 所以我会有两个输出。我目前的代码看起来像这样。

Select finvdate 
from SalesDollars where finvdate between '1/15/2014' and '04/15/2014'

我尝试使用子选择,但由于有多个日期,因此无法使用。

2 个答案:

答案 0 :(得分:1)

你的意思是这样吗?

SELECT CASE WHEN finvdate BETWEEN '6/15/2013' AND '1/15/2014' THEN finvdate ELSE NULL END AS FirstDate,
CASE WHEN finvdate BETWEEN '1/15/2014' AND '04/15/2014' THEN finvdate ELSE NULL END AS SecondDate,
FROM SalesDollars 

答案 1 :(得分:0)

我也不是100%清楚你需要什么,但假设两列都在同一张表中:

SELECT
  b.col1,
  c.col2
FROM salesDollars a

LEFT JOIN salesDollars b ON
 b.key = a.key
 AND b.col1 BETWEEN date1 AND date2

LEFT JOIN salesDollars c ON
 c.key = a.key
 AND c.col2 BETWEEN date3 AND date4