簡體   English   中英

本周的每一天對SUM(*)的SQL查詢

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM