![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 04.01.2010
Сообщений: 66
|
![]()
Есть вот такой запрос Z:
Select ID, StartDate, EndDate from table1 Результат запроса Z: ID StartDate EndDate 53 31.01.09 05.06.09 54 31.02.09 01.03.09 55 31.02.09 05.04.09 Нужно средствами SQL разложить каждый промежуток времени по месяцу, т.е. выглядеть должно вот как: ID MonthYear 53 01.09 53 02.09 53 03.09 53 04.09 53 05.09 53 06.09 54 02.09 54 03.09 55 02.09 55 03.09 55 04.09 Можете пожалуйста подсказать хоть направление в котором искать ответ. ![]() |
![]() |
![]() |
![]() |
#2 |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
![]()
...order by StartDate
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 04.01.2010
Сообщений: 66
|
![]()
mihali4, что-то не понял ответа, сортировка здесь не причем... я вижу выход только через временные таблицы, но это слишком ресурсоемко....
|
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,542
|
![]()
приблизительно так
substring(convert(varchar,d,104),4, 8) или year(d). month(d) day(d)
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 04.01.2010 в 17:35. |
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
я тоже другого варианта не вижу..
а почему - "ресурсоёмко"? Нормально, размер выходной таблицы получается равным размеру выборки.... а заполнять таблицу лучше в процедуре, возвращающей табличное значение, на самом сервере - и в ней крутить цикл от месяца начальной даты до месяца конечной даты.. по каждому ID p.s. кстати, можно попытаться по другом решить - сначала заполнить временную табличку всех возможных месяцев, а потом связать её с исходной и делать выборку.. может получиться достаточно красиво ![]() |
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 04.01.2010
Сообщений: 66
|
![]()
Вот решение, помогли на другом форуме:
Код:
|
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Помогите с SQL-запросом! | lordaleksej | БД в Delphi | 2 | 03.12.2009 22:55 |
Помогите с SQL-запросом | FleshDro | SQL, базы данных | 15 | 28.07.2009 13:32 |
Помогите с SQL запросом | DDmitriy | Microsoft Office Access | 4 | 07.05.2009 15:51 |
SQL. Помогите с запросом. | fluxion | БД в Delphi | 2 | 27.12.2007 08:01 |
Помогите с SQL запросом. | Monoflextor | БД в Delphi | 12 | 29.04.2007 16:53 |