-2
select dr_drvname, count(sh_wkflag)
from driver join shift on dr_drvnum = sh_drvnum
where sh_wkflag like '%T%'
group by dr_drvnum;

「T」は、そのシフトで働く場合に真であることを意味します。count を使用して別のテーブルから名前を描画するにはどうすればよいですか?

Driver テーブルにはすべての名前が含まれています。シフト テーブルには、シフトが実行されたかどうかに応じて T または F の値を持つ sh_wkflag が含まれます。「T」のすべての値を取得してカウントできるようにしたい。ドライバー テーブルのドライバー番号でグループ化された "T" の数を、ドライバー テーブルにあるドライバー名と共に表示します。

ドライバー名を表示しない限りクエリは実行されますが、名前も表示する必要があります。私が得るエラーは、dr_drvname は式によるグループではありません。

4

1 に答える 1

0

あはは!エラーはすべてを物語っています。句に追加dr_drvnameします。GROUP BYによるグループ化には冗長dr_drvnumですが、問題ありません。

select dr_drvname, count(sh_wkflag)
from driver join shift on dr_drvnum = sh_drvnum
where sh_wkflag like '%T%'
group by dr_drvnum, dr_drvname;
于 2012-12-02T22:48:30.020 に答える