2017-06-21 50 views
0

有没有办法在不同的日期组合上使用查询,而无需分别更改每个组合的日期?多个日期(独立)的输出


例如,而不是:

SELECT COUNT(X) FROM [TABLE] 
WHERE date1 = '21-01-2017' and date2 = '22-01-2017' 

SELECT COUNT(X) FROM [TABLE] 
WHERE date1 = '22-01-2017' and date2 = '23-01-2017' 

SELECT COUNT(X) FROM [TABLE] 
WHERE date1 = '23-01-2017' and date2 = '24-01-2017' 

OUTPUT:

23 
7 
25 

所以,我想知道的组合..输出在一个查询:

date1 = '21-01-2017' and date2 = '22-01-2017' 

date1 = '22-01-2017' and date2 = '23-01-2017' 

date1 = '23-01-2017' and date2 = '24-01-2017' 

在最可取的情况下,我不想手动更改每个日期,但有类似:

((Date1 between '21-01-2017' and '23-01-2017') x 
(Date2 between '22-01-2017' and '24-01-2017')) 
+1

嗯,你说的!你可以使用'BETWEEN'! –

+0

@HamzaAbdaoui不会给出另一个输出,即: 不是23 7 25,而是55? 目标是看到日期的最小值,所以我希望这个日期范围给出7,但我所做的所有尝试的结果是55或25.第一步是要知道每一天的价值。 –

+0

好点!您是否尝试过'21 -01-2017'和'23 -01-2017'之间的'GROUP BY date1 HAVING Date1'和'22 -01-2017'和'24 -01-2017''之间的Date2,类似这样的.. –

回答

1

您可以使用各种组合情况,当每个范围日期:

SELECT 
    COUNT (CASE WHEN DATE1 BETWEEN '21-01-2017' AND '22-01-2017' then 1 ELSE NULL END) AS COL_21_01, 
    COUNT (CASE WHEN DATE1 BETWEEN '22-01-2017' AND '23-01-2017' then 1 ELSE NULL END) AS COL_22_01 

FROM [Table] 

,你会得到这样的:

CO L_22_01 | COL_22_01

6 | 56