SQL Сервер: объединить результат запроса в одну строку - PullRequest
0 голосов
/ 30 апреля 2020

enter image description here

Я хочу отформатировать запрос следующим образом. Возможно ли это?

enter image description here

1 Ответ

0 голосов
/ 30 апреля 2020

С условной агрегацией:

SELECT 
  MAX(CASE WHEN CHECKTYPE = 'I' AND TIMETYPE = 'AM' THEN FORMAT(CHECKTIME, N'HH:mm') END) [AM-IN],
  MAX(CASE WHEN CHECKTYPE = 'O' AND TIMETYPE = 'AM' THEN FORMAT(CHECKTIME, N'HH:mm') END) [AM-OUT],
  MAX(CASE WHEN CHECKTYPE = 'I' AND TIMETYPE = 'PM' THEN FORMAT(CHECKTIME, N'HH:mm') END) [PM-IN],
  MAX(CASE WHEN CHECKTYPE = 'O' AND TIMETYPE = 'PM' THEN FORMAT(CHECKTIME, N'HH:mm') END) [PM-OUT]
FROM [dbo].[CHECKINOUT]
WHERE [USERID] = N'21477' AND [CHECKTIME] BETWEEN N'2020-02-3 00:00:00' AND N'2020-02-4 00:00:00'
GROUP BY [USERID]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...