Можно сортировать по двум меткам времени и отображать одну и ту же строку дважды - PullRequest
0 голосов
/ 16 апреля 2010

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

Область 1, элемент 1, startTime, endTime
Зона 1 item1 startTime endTime

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

1010 * т.е. *

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

выдаст

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

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

Ответы [ 2 ]

0 голосов
/ 16 апреля 2010

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

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

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

0 голосов
/ 16 апреля 2010

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

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

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

  • id
  • описание

Вы можете затем сделать 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.

...