@antnjfsfds

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

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

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

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

т.е. для каждой строки с номером пропуска (Permit_Number) значение времени в строках с пометкой enter станут соответственным столбцом. То же и для exit.
  • Вопрос задан
  • 9595 просмотров
Решения вопроса 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'


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

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

Войти через центр авторизации
Похожие вопросы
18 мая 2024, в 22:58
3000 руб./за проект
18 мая 2024, в 21:07
5000 руб./за проект
18 мая 2024, в 20:58
5000 руб./за проект