好吧,我重新閱讀你的答案,你在尋找的東西像下面;
創建臨時表並插入數據;
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並非有效版本。 –