有兩個表格JOB
和WORKER
。選擇不符合條件的物品
JOB表
- JOBID
WORKER表
- WORKERID
- JOBID(FK從JOB表)
- 假期( 'Y' 或 'N' )
有了這兩個表格,我想查找一個沒有工人分配的作業列表。 我做了以下查詢,但由於聚合函數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
請更改你的標籤並添加tsql。 –