SQL查询将表中的值更新为另一个表中属性的总和,其中ID匹配

时间:2017-04-08 20:27:26

标签: asp.net sql-server

我尝试了几种不同的查询,似乎无法找到一种不会导致错误的查询

  

关键字''

附近的语法不正确

我有一个名为# py2.coveragerc [report] exclude_lines = pragma: no cover pragma: nocover_py2 的表,用于保存测验中的用户ID,周数和周数分数。

架构:

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

总共有12周,所以最后每个用户在此表中将有12个条目

我有另一个表格coverage2 run --rcfile=py2.coveragerc ... coverage2 report --rcfile=py2.coveragerc ... coverage3 run --rcfile=py3.coveragerc ... coverage3 report --rcfile=py3.coveragerc ... ,其中包含架构:

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

每个用户在此表中只有一个条目。

我一直在尝试将得分中的currentScore的总和保存到排行榜的totalScore属性中,似乎无法找出正确的语法。

我的查询如下:

Scores

1 个答案:

答案 0 :(得分:0)

试试这个,让我们知道它是怎么回事:

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");

顺便说一下,我认为你在GROUP BY派生表的定义中缺少一个F子句,并且你在{{的定义中不需要GROUP BY 1}}派生表。