Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 多个日期的输出(独立)_Sql_Date - Fatal编程技术网

Sql 多个日期的输出(独立)

Sql 多个日期的输出(独立),sql,date,Sql,Date,有没有一种方法可以对不同的日期组合使用查询,而不必分别更改每个组合的日期 例如,而不是: 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 da

有没有一种方法可以对不同的日期组合使用查询,而不必分别更改每个组合的日期


例如,而不是:

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'
输出:

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'))

对于每个日期范围,您可以使用以下情况:

 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]
你会得到这样的结果:

COL_22_01 | COL_22_01


好吧,你说对了!您可以在之间使用
@HamzaAbdaoui不是给出了另一个输出,即:不是23725,而是55?我们的目标是查看具有最小值的日期,因此我希望该日期范围为7,但我所做的所有尝试都得到了55或25。第一步是知道每一天的价值。很好!您是否尝试过按日期分组1,日期1在'21-01-2017'和'23-01-2017'之间,日期2在'22-01-2017'和'24-01-2017'
,诸如此类……忘了它吧!谢谢:D