Как объединить 2 значения в 1 таблице в 1 строку? - PullRequest
0 голосов
/ 27 декабря 2018

У меня есть таблица с именем log_attendance

enter image description here

Требуется вывод:

enter image description here

спасибо за любую помощь

Ответы [ 3 ]

0 голосов
/ 27 декабря 2018

Простой подход к этому - использовать предложение GROUP BY в столбце emp_id, а затем поиграть с методами агрегирования MAX() и MIN(), чтобы получить желаемый результат.Обратите внимание, что для сопоставления со значениями NULL вам потребуется выполнить дополнительную проверку, например:

SELECT
    emp_id,
    MIN(tap_in) AS tap_in,
    IF(MIN(tap_in) = MAX(tap_in), NULL, MAX(tap_in)) AS tap_out
FROM
    log_attendance
GROUP BY
    emp_id

Вы также можете проверить это здесь: DB-Fiddle

0 голосов
/ 27 декабря 2018

Пожалуйста, смотрите ниже простой запрос

SELECT empid,
   min([tap In]) [tap In] ,CASE WHEN  min([tap In])= max([tap In]) THEN NULL ELSE max([tap In]) END [tap out] 
FROM
    log_attendance 
 GROUP BY empid 
0 голосов
/ 27 декабря 2018

Возможно, вам придется использовать GROUP BY с функциями MIN и MAX, чтобы удовлетворить ваши требования.

SELECT emp_id,
       MIN(tap_in) AS tap_in,
       MAX(tap_in) tap_out
FROM TABLE
GROUP BY emp_id
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...