完全なselectステートメントを使用する方法があり、特定のフィールド(SQL Server)に既定値の行を返す行が返されない場合、私は疑問に思っていますか?完全な選択ステートメントELSEをデフォルト値に設定しますか?
SELECT COUNT(CASE WHEN CAST(c.InjuryDate as DATE)>DATEADD(dd,-60, getdate()) THEN b.InjuryID end) InjuryCount, a.PersonID
FROM Person_Info a
JOIN Injury_Subject b on b.PersonID=a.PersonID
JOIN Injury_Info c on c.InjuryID=b.InjuryID
WHERE EXISTS (SELECT * FROM Hospital_Record d WHERE d.PersonID=b.PersonID and d.InjuryID=b.InjuryID) --There could be multiple people associated with the same InjuryID
GROUP BY a.PersonID
If NOT EXISTS (SELECT * FROM Hospital_Record d WHERE d.PersonID=a.PersonID) THEN '0' in InjuryCount
表示する怪我をした各人の行が必要です。私は最後の60日間に入院した傷害の数をカウントしたいと思います。病院に入院していない場合は、行を生成したいが、InjuryCount列に「0」と表示する。私はこの束と一緒に遊んだことがあります。私の日付をWHEREからSELECTに移動して、ELSEコンボなどを試してみてください。誰かが私が欲しいものを手に入れる方法を理解するのに役立つでしょうか?
[悪い習慣を蹴るために:のような表の別名を使用する(A、B、C )または(t1、t2、t3) - Aaron Bertrand](http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/08/bad-habits-to-kick-using-table-aliases-like- abc-or-t1-t2-t3.aspx) – SqlZim
本文中の「一般バージョン」に注意してください。それらは私のテーブル、フィールド、またはエイリアスではありません。 – Bester