との 2 つのテーブルがJOB
ありWORKER
ます。
JOB テーブル
- ジョビッド
ワーカーテーブル
- WORKERID
- JOBID (JOB テーブルの外部キー)
- 休暇 ('Y' または 'N')
これら 2 つのテーブルを使用して、現在ワーカーが割り当てられていないジョブのリストを見つけたいと考えています。次のクエリを作成しましたが、集計関数SUM
とCASE WHEN
.
これよりも優れたクエリはありますか?
SELECT
SUBQUERY.JOBID
FROM
(
SELECT
JOBID,
SUM
(
CASE WHEN
VACATION = 'N'
THEN 1
ELSE 0
END
) NUM_WORKERS
FROM
JOB
LEFT JOIN
WORKER
ON
JOB.JOBID = WORKER.JOBID
GROUP BY
JOB.JOBID
) SUBQUERY
WHERE
SUBQUERY.NUM_WORKERS = 0