Мужики, всем доброго вечерочка ! быстро по задаче, есть таблица Дата(DATETIME), сотрудник, дальше ИНТ (1 - вход / 2 - выход) Мне нужно выбрать только тех сотрудников, которые вошли, которые выходили их не нужно выбирать HELP всем добра
почитай внимательно, нужно выбрать всех кто входил, но не выходил, а с этим условием я выберу всех кто входил, даже если они возможно уже и вышли --- Добавлено --- Вот, мне 1 сотрудника не нужно получать в выборке, а он есть
Посмотреть вложение 3949 ну вот смотри 4 августа сотрудник номер 1 зашёл на работу, а 5 сентября 2018 он вышел, вот этими 2 и 1 1 - вошёл 2 - вышел
я их собираю из нескольких таблиц, там есть таблица сотрудников , таблица входов и выходов и я собираю все
Можно считать кол-во записей относящихся к каждому сотруднику (см. COUNT()) и если оно четно, значит вышел, иначе нет (движение через окна и т.п. не рассматриваем).
TS как-то неправильно задал вопрос. Вообще по логике, имеем 2 таблицы в одной ID работника, номер записи и статус (который должен переписываться 1/2), во второй таблице можно хранить все даты входов и выходов сотрудников, хотя это можно и в первой создать и тоже переписывать, другой вопрос как определяется что он пришел и ушел, по сути должно быть 2 турникета один должен работать только на вход, другой на выход, чтоб исключить возможность выхода из окон и т.п. Т.е. тут как бы возникают другие вопросы. А так ведь всё логично, касаемо ответа MouseZver PS: Вообще странная работа, когда приходишь 4 августа 16-ого года, а выходишь 5 сентября 18-ого года.
у меня есть одна таблица в ней 3 поля дата, сотрудник, ЧИСЛОВОЕ ПОЛЕ(1 - вход / 2 выход ) вопрос в том, смогу ли я sql собрать последние записи только тех, кто вошёл, если они вышли - тогда они мне уже не нужны
Ну так если если сотрудник не выходил, значит он на работе, т.е. опрашиваешь на наличие выхода "2" список присутствующих. и потом этих сотрудников "вычитаешь" из основной массы Т.е. ВСЕ минус ВЫШЕДШИЕ = ПРИСУТСТВУЮЩИЕ И еще есть такой момент, когда сотрудник возможно вообще не приходил, тогда нужно опросить, приходил ли он вообще. PS: Я не специалист в области SQL, но это явно решаемая ситуация даже в рамках данной структуры таблицы.
@ZlobnyKolob, что мешает сделать другую структуру таблицы? id, user_id, timestamp_in, timestamp_out, status где: status - это как раз твоё поле 1- вошёл, а как только вышел, меняем его на 2