0

結合に関する以前の質問に続いて、結合とカウント関数を使用した比較で問題が発生しています。

subject というテーブルがあります

subno   subname   quota
30006   Math      300    
31445   Science   400 
31567   Business  250

登録という別のテーブルもあります

subno sno   
30009 980008
4134  988880
31567 900890

など (ここで SQLFiddle に変換: http://sqlfiddle.com/#!12/dcd01 -- Craig)

被験者の平均クォータよりも少ないクォータの被験者番号と名前をリストする方法. これは、1 つのテーブルで学生の数を数え、他のテーブルと比較する必要があることを意味します。正しいですか?

4

2 に答える 2

2

最終的に質問(コメントから推測)を次のように決定した後:

欠員のあるすべての科目を一覧表示する

必要なクエリは次のとおりです。

select
    subno,
    subname,
    quota,
    quota - count(sno) as vacancies
from subjects s
left join enrollments e on e.subno = s.subno
group by 1, 2, 3
having quota - count(sno) > 0

vacancies残りの空席数を表示する列も追加しました。

注: 「登録」のスペルが間違っています (正しいスペルにはLが1 つしかありません)。将来の混乱を避けるために、テーブルの名前を正しいスペルに変更することをお勧めします。

于 2013-04-26T05:25:11.937 に答える