患者が別の場所に移動したときにユーザーが入力するフォームがあります。
フォームの関連部分は次のようになります。
いいえの患者の数を数えたいDate of Return
。
関連表 -
form_names - フォームのリスト
select id, name from form_names where id = 47
id name
----- ----------------------
47 Transfer of Health Information
form_items - 各フォームの質問のリスト ( form_name
)。
select id, form_name, text from form_items where form_name = 47
id form_name text
----------- ----------- ------------------------------------
1147 47 Date of Transfer:
1148 47 Sending Facility:
1155 47 Date of Return:
form_records - 特定の患者 ( pid
) がフォーム ( ) に記入したことを示すレコードform_name
。
select id, pid, date, form_name From form_records where pid = 260 and form_name = 47
id pid date form_name
----------- ----------- ----------------------- -----------
16409 260 2013-04-24 09:33:29.000 47
ここで、関連する最後のテーブルは form_answers テーブルです。完了した回答のみがこのテーブルに入力されます。
ご覧のとおりDate of Return
、フォームに値が入力されていないため、このテーブルには表示されません。
select id, form_record, form_item, text from form_answers where form_record = 16409
id form_record form_item text
-------------------- ----------- ----------- -----------------------------------------
354535 16409 1147 04-24-2013
354536 16409 1148 Lawrence Jail
354537 16409 1149 Lawrence County Hospital
354538 16409 1151 NKMA
私はこのようなことを試しましたが、うまくいきません:
select
count(*)
from
form_names fn
inner join form_items fi on fn.id = fi.form_name
inner join form_records fr on fn.id = fr.form_name
left outer join form_answers fa on fr.id = fa.form_record and fi.id = fa.form_item
where
fn.name like '%Transfer of Health Information%'
and dateadd(dd, 0, datediff(dd, 0, fr.date)) = dateadd(dd, 0, datediff(dd, 0, getdate()))
and fi.text like '%receiving facility%'
and fa.id is NULL
返却日フィールドがない患者の数を見つけるにはどうすればよいですか