あいまいな質問のタイトルについてお詫びしますが、正しい表現がわからない場合は、必要に応じて修正してください。
次のMySQLクエリがあり、いくつかのテーブルを結合しています。
select distinct(o.person),
o.job,
p.risk,
r.training,
case when c.datecompleted is null then 'no' else 'yes' end TrainingCompleted,
case when c.expirydate is null then '' else c.expirydate end expirydate
from
orgstructure o
join personrisks p on p.Person=o.person
right outer join risktraining r on r.risk=p.risk
left outer join coursescompleted c on c.course=r.training and c.person=o.person
where o.department='house keeping' and o.person <> ''
order by o.person desc
以下の結果が得られます。
結果として、各リスクには、リスクに対処する2つのトレーニングソリューションがあることがわかります。status
各トレーニングとトレーニング完了フィールドを参照する別の列を返したいのですが、いずれかのトレーニングが完了した場合はステータスgood
、それ以外の場合はステータスですbad
。したがって、この例では、リスクごとに2行しか出力されません。トレーニングが完了していないtraining
場合は、必要に応じて価値を示してください。
理想的な出力:
このクエリを編集して、目的の結果を得るにはどうすればよいですか。
前もって感謝します。