従業員がemployee_timeなどと呼ばれるテーブルに保存されたタイムカードに入力された時間がないことを報告する必要があります。存在しないIDに基づいてレコードを検索する
私の問題は、上記の週に時間を入力していない人を見つけることです。
私は、テーブルに存在しない従業員IDを見つけるためにNOT INを使用しました。したがって、レコードが存在しない場合、時間は入力されません。これはうまくいく。
Select
e.userName,
et.dateStart,
et.dateEnd
From employee_time et,
employee e
Where
e.employee_id NOT IN (Select employee_id from employee_time
where et.dateStart = date and
et.end_date = date)
Group by
e.userName,
et.startDate,
et.endDate
人は従業員が結果がゼロ時間での記録である任意の時間を入力しない場合、それは、従業員のレコードを作成し、従業員のタイムエントリページに移動するときの問題は、アプリケーションです。しかし記録は今存在する。したがって、上記のクエリでは見られないだろう、私は、その合計= 0
Select
e.userName,
et.dateStart,
et.dateEnd,
SUM(et.hoursTotal) AS total
From employee_time et,
employee e
Where
e.employee_id = et.employee_id and
et.hours_total = 0
Group by
e.userName,
et.startDate,
et.endDate
また、これはうまく機能したレコードを検索するには、次を使用している、しかし、私は彼らと結婚する必要がありますが、これまでに成功していません。手伝ってくれますか?
? –
'hours_total' = 0のレコードを、あたかも存在しないかのように扱いたいですか? 'hours_total <> 0'はどこですか? –
私の希望する出力はemployee_idsなので、ユーザー名にアクセスして、その人が時間を入力しなかったというレポートに配置することができます。 – Bman