好吧,我重新阅读你的答案,你在寻找的东西像下面;
创建临时表并插入数据;
CREATE TABLE #DataTable (ID int, DATE DateTime)
INSERT INTO #DataTable (ID, DATE)
VALUES
(10, '2016-01-13')
,(10, '2016-01-10')
,(10, '2016-11-01')
,(10, '2015-12-11')
,(11, '2015-12-11')
,(11, '2016-02-01')
,(11, '2015-01-01')
SELECT语句检索数据;
DECLARE @StartDate DateTime; SET @StartDate = '2015-12-01'
DECLARE @EndDate DateTime; SET @EndDate = '2016-12-01'
SELECT
a.ID
,MIN(DATE) FirstDate
,MAX(DATE) LastDate
,DATEDIFF(day, MIN(DATE), MAX(DATE)) DayDiff
FROM #DataTable a
WHERE a.DATE BETWEEN @StartDate AND @EndDate
GROUP BY a.ID
您可以删除字段FirstDate和LastDate,这只是显示正在比较的日期。如果变量日期之间只有一个日期,那么您将返回0值,因此您可能必须对此进行解释。也可能是一个好主意,把一些东西来检查一个NULL。
预期结果是什么? –
如果您正在查看两个日期之间的日期,那么没有MAX或MIN,这是一个静态值。你的问题不是很清楚,你能否澄清你期望的输出。附:你可能想检查你的SQL版本,据我所知(从2012年到2014年),2013并非有效版本。 –