私は、セクションにサインインされた人数または毎日セクションからサインアウトされた人の数をカウントするレポートを作成しようとしています。MSSQL実行INカウントレコード
select inout.name_id, nametable.name, inout.datetime, inout.status, inout.section
from inout
join nametable on inout.name_id = nametable.name_id
where inout.date between '1/1/2016' and '1/3/2016'
order by inout.date
サンプルデータ:
Datetime Name Section Status
1/1/2016 1:34:56 John A IN
1/1/2016 4:11:11 Steve A OUT
1/1/2016 18:20:20 Bill A IN
1/2/2016 13:13:13 John A OUT
1/2/2016 12:12:12 Ben A IN
1/3/2016 1:01:01 JIM A IN
そして、最終的な結果:
Date # of people in section
1/1/2016 2
1/2/2016 2
1/3/2016 3
EDIT:-1を与えるだろうランニングカウントとOUTに+1を与える状態で考えていたので、ある人が仕事にやって来るか、仕事を辞めた場合、毎日特定のセクションで何人の人が働いているかを見ることができますが、その日付範囲の前にそこにいた人々のためにどのように表示するかはわかりません。
+1と-1が分かりませんでした。もっと明確に説明できますか? – Siva
私はその人がINステータスを持っていればカウントに+1を加算し、アウトステータスの場合は-1と考えていました。そのような日付の各セクションには何人の人がいるのかを数えます。 – mol