Halo, ребята, я новичок ie, и мне нужно решение для моей домашней работы.
для первого извинения, если мой Engli sh не годится.
- поэтому у меня есть 2 таблицы, 1 таблица - данные о сотрудниках (имя таблицы - emp), а другая - время и время сотрудников (имя таблицы - att_punches), с флагом 0 для времени и флагом 1 для тайм-аут.
я сделал два представления из att_punches для разделения time_in и time_out, есть vw_in и vw_out.
в некоторых случаях сотрудники забывают пробивать, когда они приходят или когда они go возвращаются домой, и если они не приходят, то, конечно, они не пробивают.
мне нужен вид, который может показать дата и кто не бьет, когда они приходят или go домой и не бьют по работнику, который не приходит.
* 1 030 * я присоединился к таблице с 2 представлениями, но только с 1 датой, запрос, подобный этому
SELECT a.emp_pin, a.emp_name,
CASE WHEN b.date IS NULL THEN c.date ELSE b.date END AS DATE,
b.time_in, c.time_out
FROM emp a
LEFT OUTER JOIN (SELECT emp_pin, emp_name, DATE, time_in
FROM vw_in WHERE DATE = '2020-02-05') b
ON a.emp_pin = b.emp_pin
LEFT OUTER JOIN (SELECT emp_pin, emp_name, DATE, time_out
FROM vw_out WHERE DATE = '2020-02-05') c
ON a.emp_pin = c.emp_pin;
результат, подобный этому введите описание изображения здесь
все, что я хочу, это сделать все данные в одном представлении, поэтому, когда мне нужно увидеть, кого сотрудники не бьют, когда приходят или возвращаются, а кого нет на сегодня, просто сделайте select * from [view_name] where date between [start_date] and [until_date]
I ' мы подготовили таблицу и данные для таблицы emp
& att_punches
здесь.
большое спасибо.