使用group by子句

0 sql sql-server group-by

查询:

  SELECT sd.ident,sd.suniq, testc, subtestc, ts.testscore, 
         metadept, ts.takendt, 
         MAX(takendt) testdate
    FROM studemo sd, stutests ts, testdef td, udefstu ud
   WHERE ts.suniq =sd.suniq
     AND td.testuniq = ts.testuniq
     AND ts.suniq = ud.suniq
     AND td.testuniq IN ('2000089', '2000090', '2000091', '2000092')
GROUP BY sd.suniq
ORDER BY suniq
Run Code Online (Sandbox Code Playgroud)

得到以下错误:

消息8120,级别16,状态1,行2列"studemo.ident"在选择列表中无效,因为它不包含在聚合函数或GROUP BY子句中.

我的目标是获得最新的考试成绩.我成功了,直到我尝试添加更多表格以包含更多学生信息.

Nei*_*ght 5

您需要将那些不在聚合函数中的列添加到您GROUP BY的SQL语句有效的顺序中.

GROUP BY sd.ident,sd.suniq, testc, subtestc, ts.testscore, metadept, ts.takendt