SQL初心者はここにあります。私はトレーナーのスケジュールのテーブルを持っています。テーブル内の各レコードは、スケジュールは、以下の関連フィールドが含まれています。 course_code、 training_date、 のstart_time、 END_TIME、 トレーナー、 部屋時間に基づいて重複を識別するクエリ
私はトレーナーまたは部屋が二重予約されたときにいつでも照会で識別することができます。クエリウィザードは私をかなり遠くまで導きますが、明らかに私の必要性はウィザードの能力よりも少し複雑です。私はこのクエリを生成することができた:
SELECT Schedule.[training_date], Schedule.[trainer], Schedule.[course_code]
FROM Schedule
WHERE (((Schedule.[training_date]) In (SELECT [training_date] FROM [Schedule] As Tmp GROUP BY [training_date],[trainer] HAVING Count(*)>1 And [trainer] = [Schedule].[trainer])) AND (Not (Schedule.[course_code])="OP00487"))
ORDER BY Schedule.[training_date], Schedule.[trainer];
それはトレーナーは任意の日に複数回を計上しているコースコードを返しますが、私はトレーナーは、2つの異なる回を訓練され、それらのレコードを除外したいと思います。例えば、OP1は12:30に9時00を教えられるかもしれない、とOP2は午後04時00に12:30を教えています。この場合、これは私が気にする日付の中に重複しているわけではありません。私はトレーナーが14時に12:00とも10:30に8時を教えている場合は、レコードを見たいん。
course_codeのクエリでは、そのコードの重複は関係がないため、1つを除外します。部屋のクエリでも同じことをします(オフサイト個の部屋が重複していません)。
私はトレーナークエリに基づいて部屋クエリを設計することができるはずですが、両方が1つのクエリに統合することができれば、それは素晴らしいだろう。
ありがとうございます。あなたは私がschedule_idを持っていることが正しいと思います。 –
申し訳ありませんが、早すぎます。 テーブルに重複エントリを追加しようとしましたが、クエリに表示されません。 "as s"と "as s2"は使い易さのためにクエリ内でのみ定義されていると解釈するのは正しいですか?私はそれらを私のテーブルのものと置き換える必要はありません、そうですか? –
@KevinElmore。 。 。これらは 'schedule'テーブルへの参照のエイリアスです。内部クエリーと外部クエリーでそれらが異なることが重要です。彼らが一貫して使用されている限り、彼らは特に重要ではありません。 –