Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Вложеный list() / 7 сообщений из 7, страница 1 из 1
26.04.2005, 21:44
    #33037113
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вложеный list()
ASA 9+
Есть табличка типа
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
StartDate   DayOfWeek  StartTime
2005-01-01    Sun         05:00
2005-01-01    Sun         08:00
2005-01-01    Mon         07:00
2005-01-01    Mon         13:00
2005-01-02    Sun         08:00
2005-01-02    Fri         06:00
2005-01-02    Fri         14:00

Хочется:
Код: plaintext
1.
2.
3.
4.
5.
StartDate    Times
2005-01-01  Sun: 05:00, 08:00
            Mon: 07:00, 13:00
2005-01-02  Sun: 08:00
            Fri: 06:00, 14:00

Как это сделать одним селектом? Чую что можно, только не получается :)
...
Рейтинг: 0 / 0
26.04.2005, 23:10
    #33037182
ASCRUS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вложеный list()
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
BEGIN
  DECLARE LOCAL TEMPORARY TABLE #Test (
    StartDate date NOT NULL,
    DayOfWeek char( 3 ) NOT NULL,
    NumDayOfWeek tinyint NOT NULL,
    StartTime char( 5 ) NOT NULL,
    PRIMARY KEY (StartDate, DayOfWeek, StartTime)
  ) NOT TRANSACTIONAL;

  INSERT INTO #Test
    SELECT '2005-01-01', 'Sun',  1 , '05:00'
    UNION ALL
    SELECT '2005-01-01', 'Sun',  1 , '08:00'
    UNION ALL
    SELECT '2005-01-01', 'Mon',  2 , '07:00'
    UNION ALL
    SELECT '2005-01-01', 'Mon',  2 , '13:00'
    UNION ALL
    SELECT '2005-01-02', 'Sun',  2 , '08:00'
    UNION ALL
    SELECT '2005-01-02', 'Fri',  6 , '06:00'
    UNION ALL
    SELECT '2005-01-02', 'Fri',  6 , '14:00';

  SELECT StartDate, List(DayOfWeek || ': ' || ListTime, '\n' ORDER BY NumDayOfWeek) AS Str
  FROM (
    SELECT StartDate, DayOfWeek, NumDayOfWeek, List(StartTime, ',' ORDER BY StartTime) AS ListTime
    FROM #Test
    GROUP BY StartDate, DayOfWeek, NumDayOfWeek
  ) AS x
  GROUP BY StartDate
  ORDER BY StartDate;
END;
StartDateStr'2005-01-01''Sun: 05:00,08:00\x0aMon: 07:00,13:00''2005-01-02''Sun: 08:00\x0aFri: 06:00,14:00'
В поле Str естественно управляющий символ "\x0a" означает перевод каретки для текстового поля. Поле NumDayOfWeek я ввел для сортировки по дню недели, так как по текстовому полю сортировка была бы неправильной.
...
Рейтинг: 0 / 0
27.04.2005, 00:29
    #33037216
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вложеный list()
Ой спасибо :)
Это я пообедать забыл, потому и торможу сегодня :)
...
Рейтинг: 0 / 0
27.04.2005, 00:33
    #33037217
ASCRUS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вложеный list()
White OwlОй спасибо :)
Это я пообедать забыл, потому и торможу сегодня :)
Пообедать ? Гм, а я вот на время смотрю - 00:30 и подумываю спать пойти :)
...
Рейтинг: 0 / 0
27.04.2005, 00:40
    #33037221
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вложеный list()
ASCRUS White OwlОй спасибо :)
Это я пообедать забыл, потому и торможу сегодня :)
Пообедать ? Гм, а я вот на время смотрю - 00:30 и подумываю спать пойти :)
Ты забыл, что я в другом часовом поясе. В очень другом :)
...
Рейтинг: 0 / 0
27.04.2005, 00:42
    #33037224
ASCRUS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вложеный list()
White Owl ASCRUS White OwlОй спасибо :)
Это я пообедать забыл, потому и торможу сегодня :)
Пообедать ? Гм, а я вот на время смотрю - 00:30 и подумываю спать пойти :)
Ты забыл, что я в другом часовом поясе. В очень другом :)
Ну встречаемся же. Значит не в очень и другом :) Ладно, я все таки спать, удачно победить вложенные листы (кстати для сортировки все таки насчет поля или выч. выражения NumDayOfWeek подумай) :)
...
Рейтинг: 0 / 0
27.04.2005, 09:27
    #33037445
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вложеный list()
White OwlТы забыл, что я в другом часовом поясе. В очень другом :)
Это в каком же ? Я просто прикидываю, есть ли у нас время, когда форум немодерируется.
...
Рейтинг: 0 / 0
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Вложеный list() / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]