私はクエリから出力する必要があるものに対して正しい構文を理解することにいくつか問題があります。行の出力を制限する
ここに私のデータがあります(これらは正しい列名ではありません。読みやすくするためです)。実際のテーブルからは、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がそのレコードを選択する場合には、従業員が複数のSレコードを持っている場合
従業員は何のPレコードを持っていない場合は、S
を選択 、下のレコード番号を選択しますか、部門は400ではありませんという記録(400行が常に高いレコード番号になります)
を選択するだけで1つのSレコード、および部門がある場合は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
をそして私は入れてやりたい「制限= 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
右、泥などをクリア?
エラーが発生します。私はちょうど行方不明になっている "簡単な"方法はありますか?
ご協力いただきありがとうございます。
ミシェル
下位レコード番号/ not dept 400に関するORは、情報のためだけにありました。あなたは正しい、左はそれに十分です。 私はあなたの選択をちょっと試してみるつもりです(私は今、別の問題で膝が深いです)。 – Michelle