Модераторы: LSD
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Группировка задач по дням 
:(
    Опции темы
dEEp
Дата 12.1.2011, 18:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 58
Регистрация: 9.5.2007




Поковырял по форуму, но то, что нужно - не нашёл. А тема такая...

Есть список задач. Они все имеют время начала и окончания задачи. Тема в том, что необходимо на странице вывести список всех задач, но разбитых по дням.

В итоге получится что-то вроде этого:

Код

1 января 2011 год
    -task 1
    -task 2

2 января 2011 год
    -task 3

12 января 2011 год
    -task 4
    -task 5
    -task 6


Конечно, понятно, что используя простой запрос select * from tasks group by starttime, мы получим сгруппированные задачи. Но как быть со второй частью? Т.е. имея набор задач, сгруппированных по времени, разбить на дневное распределение, как описал в примере?

P.S. Сорри, видимо не туда положил пост. Мне кстати код не обязателен. Мне бы логически понять. Сплю мало - туплю много.

Это сообщение отредактировал(а) dEEp - 12.1.2011, 18:40
PM MAIL   Вверх
RockClimber
Дата 13.1.2011, 08:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 848
Регистрация: 5.5.2006
Где: планета 013 в тен туре




Т. е. для каждого дня выписать список задач, которые в этот день будут выполняться?
Задача может выполняться более одного дня? Например, стартовать 1-го и завершиться 4-го? Например, есть две задачи, одна начинается 1-го и заканчивается 4-го, а вторая начинается 3-го и заканчивается 3-го. Результат должен быть:
Код

1 января
  задача 1
2 января
  задача 1
3 января
  задача 1
  задача 2
4 января
  задача 1
Я правильно понял?


--------------------
Хорошо кинутый дятел далеко летит, крепко встревает, долго торчит.
PM MAIL GTalk   Вверх
Akella
Дата 13.1.2011, 10:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант




Поставь себе MS Outlook
PM MAIL   Вверх
mdyug
Дата 13.1.2011, 11:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Балбес
*


Профиль
Группа: Участник
Сообщений: 134
Регистрация: 8.9.2010




В 2008 точно и по идее в Win 7 есть поля "Next Run Time" и "Last Run Time" содержащие полную дату и время.
PM   Вверх
dEEp
Дата 13.1.2011, 11:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 58
Регистрация: 9.5.2007




причём тут outlook вообще?


RockClimber, задача может начаться и закончиться в любое время. однако в списке задач - группировка только по началам. т.е. в твоём примере (учитывая то, что задача 1 будет идти несколько дней) получится:

Код

1 января
  задача 1
3 января
  задача 2


да да, это ###, но так требует сами знаете кто.
PM MAIL   Вверх
Akella
Дата 13.1.2011, 11:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант




Цитата(dEEp @  13.1.2011,  11:40 Найти цитируемый пост)
причём тут outlook вообще?

там можно выводить задачи по дням

Добавлено через 33 секунды
короче попроси модераторов перенести тему в соответствующий раздел  smile 
PM MAIL   Вверх
Zloxa
Дата 13.1.2011, 12:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008




Код

SQL> with t as (
  2  select trunc(sysdate,'Y') starttime, 'task 1' task  from dual
  3  union all select trunc(sysdate,'Y') starttime, 'task 2' task  from dual
  4  union all select trunc(sysdate,'Y')+1 starttime, 'task 3' task  from dual
  5  union all select trunc(sysdate,'Y')+11 starttime, 'task 4' task  from dual
  6  union all select trunc(sysdate,'Y')+11 starttime, 'task 5' task  from dual
  7  union all select trunc(sysdate,'Y')+11 starttime, 'task 6' task  from dual
  8  )
  9  select nvl(nvl2(task,' -'||task,null),to_char(starttime,'fmDD month YYYY','NLS_DATE_LANGUAGE = russian')) result
 10   from t
 11  group by rollup (starttime,task)
 12  having grouping(starttime) = 0
 13  order by starttime,grouping(task) desc;
 
RESULT
----------------
1 январь 2011
 -task 1
 -task 2
2 январь 2011
 -task 3
12 январь 2011
 -task 4
 -task 5
 -task 6
 
9 rows selected
 


Правильно выбирайте форум


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила раздела «Флейм»
Sneg0k

Добро пожаловать в «Флейм».

В разделе не действуют многие правила:

  • Можно оффтопить(умеренно)
  • Можно общаться на темы, не только связанные с программированием.

Строго запрещено:

  • Размещать рекламу
  • Обсуждать политику
  • Оскорблять друг-друга и переходить на личности
  • Наезжать, провоцировать других участников форума
  • Материться
  • Троллить

Напоминаем о существовании волшебной кнопочки "Репорт". Если вы увидели сообщение, несовместимое с жизнью, просьба подвести на нее курсор и клацнуть левой клавишей мышки. Тем самым вы сможете призвать злого, но жутко справедливого джина-модератора, который нашлет порчу на злостного нарушителя. Кстати - счётчик сообщений здесь не растёт.


Глас Винграда:


Глас Философии:


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Sneg0k

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Флейм | Следующая тема »


 




[ Время генерации скрипта: 0.0467 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.