クエリから出力する必要があるものの正しい構文を理解するのに苦労しています。
これが私のデータです (いいえ、これらは正しい列名ではありません。読みやすくしようとしています) 取得している実際のテーブルには 26 列のデータがあります。
employeeNumber - recordNumber - job - dept - type
12 - 1 - stapler - 788 - s
12 - 6 - paper pusher - 400 - s
18 - 2 - phone cleaner - 600 - p
18 - 4 - sweeper - 567 - s
19 - 0 - typist - 400 - s
21 - 0 - mouse ball cleaner - 400 - p
したがって、選択ルールは次のとおりです。
タイプが P の場合、そのレコードを選択します
従業員に P レコードがない場合は、S を選択します
従業員に複数の S レコードがある場合は、より低いレコード番号を選択するか、部門が 400 ではないレコードを選択します (400 行) Sレコードが
1 つしかなく、Dept が 400 の場合、行が返されます。
これは現在機能しているものです:
SELECT employeeNumber, recordNumber, job, dept, type
FROM employees
WHERE (type = 'P')
OR
(type = 'S'
AND employeeNumber NOT IN
(
SELECT employeeNumber
FROM employees
WHERE type = 'P'
)
)
ORDER BY employeeNumber, recordNumber
そして、私がやりたいことは、最後に「limit = 1」(または同様のもの)を配置することです。これにより、複数の S 行の場合、より低い recordNumber が返される行になります。
上記のデータから返されるレコード セットは次のとおりです。
employeeNumber - recordNumber - job - dept - type
12 - 1 - stapler - 788 - s
18 - 2 - phone cleaner - 600 - p
19 - 0 - typist - 400 - s
21 - 0 - mouse ball cleaner - 400 - p
泥のように透明ですよね?
エラーが発生し続けます。私が見逃している「簡単な」方法はありますか?
ご協力いただきありがとうございます。
ミシェル