簡體   English   中英

SQL查詢將表中的值更新為另一個表中屬性的總和,其中ID匹配

[英]SQL query to update value in table to sum of attribute in another table, where the ID's match

我已經嘗試了幾個不同的查詢,似乎無法找到一個有效但不會導致錯誤的查詢

關鍵字''附近的語法不正確

我有一個名為Scores表,用於保存測驗中的userID,周數和周數分數。

架構:

  • 分數(Id,userName,weekNumber,currentScore)

共計12周,因此最終每個用戶在此表中將有12個條目

我有另一個具有架構的表Leaderboard

  • 排行榜(Id,userName,week1,week2,week3 ..... week12,totalScore)

每個用戶在此表中只有一個條目。

我一直在嘗試將得分中的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.

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