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