Можно сортировать по двум меткам времени и отображать одну и ту же строку дважды

Я смотрю на создание решения по расписанию. У меня есть лист задач, который выглядит как

Зона 1, пункт 1, начало, время, конец, время
Зона 1 item1 startTime endTime

Я хочу создать отображение, где я могу видеть, что даже происходит дальше, либо endTime, либо startTime

т.е.

Ньюкаслский ролик 16:45 18:45
Newcastle reel2 17:45 19:45

будет выводить

Ньюкаслская катушка 16:45
Ньюкаслская катушка 17:45
Ньюкаслский ролик 18:45
Ньюкаслский ролик 19:45

Более того, я хотел бы определить, является ли время startTime или endTime, нужно ли мне вводить две строки для каждого действия (время, площадь, элемент, начало | конец). Я могу сделать интерфейс для создания двух строк. Мне просто интересно, было ли лучшее решение.

2 ответа

Решение

С вашей существующей схемой этот запрос должен работать:

SELECT * FROM
((SELECT Area, Item, startTime AS eventTime FROM tasks)
UNION
(SELECT Area, Item, endTime FROM tasks)) AS t
ORDER BY eventTime

По сути, вы выбираете все время начала, затем время окончания, а затем сортируете их.

Вы можете иметь таблицу событий с

  • Я бы
  • время
  • тип (начало или конец)
  • идентификатор детали события

и таблица сведений о событии с

  • Я бы
  • описание

Вы можете сделать select time, type, description from event left join event_details on event.details_id = event_details.id order by time,

Это должно дать вам желаемый результат.

Если вы хотите получить выходные данные с начальным и конечным временем в каждой строке, то вам нужно сделать что-то вроде select event_details.description, min(time) as start, max(time) as end from event left join event_details on event.details_id = event_details.id group by event_details.description,

Другие вопросы по тегам