多肢選択式の回答の結果を含むテーブルに値が格納されています。選択肢は次のようになります。
Allergy 1
Cardiology 2
Chest Disease 4
Dermatology 8
Dialysis 16
Emergency Room 32
Ambulance Trips 64
Gastroenterology 128
General Medicine 256
General Surgery 512
Gynecology 1024
Hematology 2048
Methadone 4096
Neurology 8192
Neurosurgery 16384
Obstetrics 32768
Ophthalmology 65536
Orthopedics 131072
Physical Therapy 262144
Plastic Surgery 524288
Podiatry 1048576
Proctology 2097152
Psychiatry 4194304
Surgery Performed 8388608
Thoracic Surgery 16777216
Urology 33554432
Outside X-Rays 67108864
Diagnostic Test(outside) 134217728
Other Trips/Outside Consults 268435456
誰かが回答を入力すると、回答/値は次のように保存されます。
id form_record form_item value entered_date
-------------------- ----------- ----------- -------------------- -----------------------
376418 17453 2943 1114241 2013-05-23 09:56:06.000
376889 17475 2943 1056896 2013-05-23 11:00:06.000
したがって、たとえば、ユーザーが何を選択したかを確認しようとするとNeurology
、今日は次のようにします。
select
fa.value & 8192 as 'Neurology'
from
form_records fr
inner join form_names fn on fn.id = fr.form_Name
inner join form_items fi on fn.id = fi.form_name
inner join form_answers fa on fr.id = fa.form_record
and fa.form_item = fi.id
where
fn.name like '%Consultation Review Form%'
and dateadd(dd, 0, datediff(dd, 0, fr.date)) = dateadd(dd, 0, datediff(dd, 0, getdate()))
私の結果は次のとおりです。
Neurology
--------------------
0
8192
(2 row(s) affected)
この回答を完了した 2 番目のユーザーは を選択しましNeurology
たが、この回答を完了した最初のユーザーは を選択しませんでしたNeurology
。
やろうとしているのは、Neurology
回答/値の数の日のカウントを取得することです。
これを行うことにより:
select
count(fa.value & 8192) as 'Neurology'
を返します2
。返してほしい1
。