我在SQL Server 2008中工作,我正在寫一個存儲過程,它彙集每週數據。如何在SQL每週彙總數據,幷包括跳過周太
代碼聚集
ALTER PROCEDURE [dbo].[ups_URLBatchStats]
(@startDate datetime, @endDate datetime,@source varchar(8))
AS BEGIN
SELECT
DATEADD(wk, DATEDIFF(wk, 0, ScheduleDate), 6) AS [Week Commencing],
SUM(Unresolved) AS Unresolved,
SUM(Resolved) AS Resolved,
SUM(TurkSpend) AS TurkSpend
FROM
dbo.V_URLBatchStats
WHERE
ScheduleDate BETWEEN @startDate AND @endDate
AND Source = ISNULL(@source, Source)
GROUP BY
DATEADD(wk, DATEDIFF(wk, 0, ScheduleDate), 6)
ORDER BY
DATEADD(wk, DATEDIFF(wk, 0, ScheduleDate), 6)
END
顯示它給了我正確的結果,但如果有任何星期沒有數據我有在列的「0」值來證明這一點。
所以,我怎麼能處理這些跳過每週行?
在此先感謝。
感謝您的重播,這是好的,但有一個問題,它實際上產生錯誤的結果,但好處是,它也包括周,其不是在數據庫中的記錄。 –
@PavanTiwari我的版本找到一週的開始。測試這個:SELECT DATEADD(wk,DATEDIFF(wk,0,'2011-01-01') - 1,6)它找到了本週的第一個星期一。所以我認爲這是你正在使用的腳本是錯誤的 –