尝试使用SQL" case"来增加数据库表中的值。

时间:2017-04-04 16:06:51

标签: mysql sql asp.net database

老实说,我甚至不确定我是否应该在这里使用案例。

我正在与ASP.net合作建立一个网站。我目前正在处理的页面是.cshtml页面:

在用户提交后,我必须对的预测进行评分。含义 - 一旦实际结果出现,我会根据他们得到的预测数量对每个用户进行评分。用户每周提交预测(每周10个调查问题),然后我作为管理员进入并评分他们的"测验"根据实际答案。他们得到的每个问题都应该为他们的分数增加一些分数(有些问题可能比其他问题更有价值)。

用户答案存储在名为" WeeklyPredictions"的数据库表中。并且他们的分数应保存在名为"分数的数据库表中。"两个表都包含用户ID作为属性。两个表都将此ID 作为主键的周数。

我从这段代码开始 - 对于所有10个问题,需要复制Question1的2个案例。变量@ Q1是保存为var的实际(Admin)答案。基本上我只想为每个正确的用户预测添加一些数量到每周分数和总分数。

var selectCommand = ("SELECT * " +
    "CASE WHEN Question1 = @Q1 THEN " +
    "UPDATE Scores SET weeklyScore = weeklyScore + 1" +
    "CASE WHEN Q1 = @Q1 THEN " +
    "UPDATE Scores SET totalScore = totalScore + 1" +
    "FROM WeeklyPredictions " +
    "WHERE WeekNumber = @weeknumber" +
    "NATURAL JOIN Scores");

WeeklyPredictions和Scores的模式是:

WeeklyPredictions(Id,WeekNumber,Question1,Question2,Question3,Question4,Question5,Question6,Question7,Question8,Question9,Question10)

分数(Id,WeekNumber,weeklyScore,totalScore)

0 个答案:

没有答案