2

私は2つのテーブルを持っています:Marks(studentnum、marks)Student(SNum、SName)

私が行った場合

SNameを選択し、Marksからmarks-avg(marks)がSNum=studentnumでStudentに参加します

その後、1行しか返されません。

平均の変数を割り当てずに、学生の名前のすべてのリストと、学生のマークと平均(学生のマーク-平均)の差を返す方法はありますか?

4

2 に答える 2

2

集計値と非集計値を混在させたいと考えています。これはサブクエリを使用しますが、サーバーによっては他のオプションがある場合があります。

SELECT
    SName,
    marks - (SELECT avg(marks) FROM Marks as m2 WHERE m2.studentnum = m.studentnum)
FROM
    Marks as m INNER JOIN
    Student as s
        ON s.SNum = m.studentnum
于 2012-07-08T06:51:31.803 に答える
0

これを試して:

Select s.sname, (m.mark - temp.avg)
From marks m
Inner join (select studentnum, avg(mark) as avg from marks group by studentnum) temp 
On temp.studentnum = m.studentnum
Inner Join students s
On s.snum = m.studentnum
于 2012-07-08T06:48:03.440 に答える