@antnjfsfds

Как сделать из строк столбцы SQL?

Использую SQL Server 2010.

Для такой таблицы
d2d5cd1933264ab9952b68a972a16dbf.PNG

составить запрос, результатом которого будет примерно вот это
ee71c07b97f9477c8f72579bf088f48d.PNG

т.е. для каждой строки с номером пропуска (Permit_Number) значение времени в строках с пометкой enter станут соответственным столбцом. То же и для exit.
  • Вопрос задан
  • 9621 просмотр
Решения вопроса 1
fornit1917
@fornit1917
Тонкостей MS SQL не знаю, но общая суть такая:
SELECT t1.Permit_Number, t1.Pass_Time as Enter, t2.Pass_Time as Exit FROM table as t1
  LEFT JOIN table as t2 ON (
     t1.Permit_Number=t2.Permit_Number AND t2.Permit_Kind='exit'
  )
WHERE Pass_Kind='enter'


@antnjfsfds
UPD:
Не заметил, что пар несколько. Можно попробовать тогда так, без хранимки:

SELECT t1.Permit_Number, t1.Pass_Time as Enter, 
   (
    SELECT MIN(t2.Pass_Time) 
         FROM table as t2 
         WHERE t2.Pass_Kind='exit' AND t2.Pass_Time>t1.Pass_Time 
             AND t1.Permit_Number=t2.Permit_Number
   ) AS Exit
FROM table as t1
WHERE Pass_Kind='enter'


За работоспособность запроса не ручаюсь, проверить щас негде, но идею я думаю вы поняли: для каждого времени входа подзапросом выбираем ближайшее время выхода, которое больше чем время входа
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы