2012-01-25 12 views
3

私は、次の表があります。一致するレコードが存在する場合、クエリは「はい」を返し、そうでない場合は「いいえ」を返します。 SQL/MS Accessの

学生データ

  • 学生ID(主キー)

前教育

  • 学生IDを(外部キー)
  • 前教育コード

私は学生一人当たり1枚のレコードと学生データからの各種データを表示するクエリを持っている瞬間。 事前教育に少なくとも1つの一致するレコードがある場合は "Y"を示し、一致するレコードがない場合は、このクエリに追加の列を追加します。基本的に私は "この学生は以前の教育を受けていますか?"という質問に答えてほしいです。

事前教育にあるレコードの数にかかわらず、クエリで1人のレコードが1つ必要です。

私はMS Accessで働いており、SQLの経験がほとんどないため、SQL知識があまり必要ではないソリューションが望ましいですが、必要ではありません。

答えて

3

LEFT JOINIIFを使用できます。

SELECT student.studentid,iif (isnull(prior.priorid),'Yes','No') 
FROM student LEFT JOIN [prior] ON student.studentid = prior.studentid; 

EDIT:

SELECT student.studentid, iif(count(prior.priorid)<>0,'Yes','No') 
FROM student LEFT JOIN [prior] ON student.studentid=prior.studentid 
group by student.studentid 
+0

このまさに私は尋ねた、しかし、それは彼らが** **前教育を持っているレコードの数に基づいて、学生一人当たり複数のレコードを与えません。私は元の質問でより具体的にすべきだった(私はこれを修正するためにそれ以来編集してきた)。これを達成するためにコードを修正することができればそれはすばらしいでしょう。 – LittleJohn

+0

@LittleJohn - グループを追加し、Count()関数の値を比較します。編集された投稿を見てください。 – adatapost

+0

ありがとうございます。変更は素晴らしいです。 – LittleJohn

関連する問題