[英]PLSQL : Get sum for each day of week and total sum for week in a single query
[英]SQL Query to SUM(*) for each day of this week
我有一個可讓用戶掃描徽標並贏得“積分”的應用程序。 他們每天可以掃描多次。 我正在嘗試編寫一個查詢,以返回本周每一天的總積分。 到目前為止,我能夠返回一周中每一天的所有記錄。 挑戰在於如何將每天的總積分相加。 到目前為止,這是我所擁有的:
SET DATEFIRST 1 -- Beginning of week is Monday
SELECT ScanID, UserID, DateTime, BeerID, BrewerID, Points
FROM SmartTappScanLog
WHERE DateTime >= dateadd(day, 1-datepart(dw, getdate()), CONVERT(date,getdate()))
AND DateTime < dateadd(day, 8-datepart(dw, getdate()), CONVERT(date,getdate()))
AND UserID = '1' AND BeerID = '3'
ORDER BY DateTime ASC
因此,如果星期一進行了兩次掃描,分別得到2分和5分,我想在星期一返回7。 謝謝。
您需要一個匯總。 這樣的事情每天將在數據中獲得一行:
SELECT CAST(Datetime as date) as date, UserID, BeerID, SUM(Points) as points
FROM SmartTappScanLog
WHERE DateTime >= dateadd(day, 1-datepart(dw, getdate()), CONVERT(date,getdate())) AND
DateTime < dateadd(day, 8-datepart(dw, getdate()), CONVERT(date,getdate())) AND
UserID = 1 AND BeerID = 3
GROUP BY CAST(Datetime as date), UserID, BeerID
ORDER BY MIN(DateTime) ASC;
如果要在輸出中顯示星期幾,請使用datepart()
或datename()
進行獲取。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.