[英]SQL query to update value in table to sum of attribute in another table, where the ID's match
我已經嘗試了幾個不同的查詢,似乎無法找到一個有效但不會導致錯誤的查詢
關鍵字''附近的語法不正確
我有一個名為Scores
表,用於保存測驗中的userID,周數和周數分數。
架構:
共計12周,因此最終每個用戶在此表中將有12個條目
我有另一個具有架構的表Leaderboard
:
每個用戶在此表中只有一個條目。
我一直在嘗試將得分中的currentScore的總和保存到Leaderboard的totalScore屬性中,似乎無法找出正確的語法。
我的查詢如下:
UPDATE t1
SET t1.totalScore = t2.completeScore
FROM dbo.Leaderboard AS t1,
((SELECT Id, SUM(weeklyScore) AS completeScore FROM dbo.Scores) as F
INNER JOIN
(SELECT Id FROM dbo.Scores GROUP BY Id) AS S ON F.Id = S.Id) AS t2
WHERE t1.Id = t2.Id
試試這個,讓我們知道它是怎么回事:
var total1 = ("UPDATE t1 " +
"SET t1.totalScore = t2.completeScore " +
"FROM dbo.Leaderboard AS t1, (SELECT F.Id, F.completeScore FROM " +
"(SELECT Id, SUM(weeklyScore) AS completeScore FROM dbo.Scores GROUP BY ID) as F " +
"INNER JOIN (SELECT Id FROM dbo.Scores/* GROUP BY Id*/) AS S "+
"ON F.Id = S.Id) AS t2 "+
"WHERE t1.Id = t2.Id");
順便說一下,我認為你在F
派生表的定義中缺少GROUP BY
子句,並且在S
派生表的定義中不需要GROUP BY
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.