powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Добавление строк с диапазоном дат
7 сообщений из 7, страница 1 из 1
Добавление строк с диапазоном дат
    #40067186
Dolphiin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день, прошу помочь в составлении запроса - имеется таблица с ID и датами, нужно добавить к каждому ID строки +30 дней по датам

Исходная:
авторID Date
1 2015-12-01
2 2016-09-26

Необходимо:
авторID Date
1 2015-12-01
1 2015-12-02
1 2015-12-03
- - - - - - - - - - -
2 2016-09-26
2 2016-09-27
2 2016-09-28
...
Рейтинг: 0 / 0
Добавление строк с диапазоном дат
    #40067198
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dolphiin,

таблица чисел от 1 до 29, прибавляйте...
...
Рейтинг: 0 / 0
Добавление строк с диапазоном дат
    #40067212
Dolphiin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
автортаблица чисел от 1 до 29, прибавляйте...

Понимаю что глупый вопрос, но как именно это сделать? Опыта в sql немного, поэтому и спрашиваю тут. Сам гуглил как составлять последовательность дат по заданному диапазону через функцию, но пока не получается сделать её с привязкой к ID
...
Рейтинг: 0 / 0
Добавление строк с диапазоном дат
    #40067224
Wlr-l
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Например, так можно получить даты, которые нужно добавить.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
with a(id, d) as (  -- здесь должна быть ваша таблица
  select 1, '20151201'  union all
  select 2, '20160926'
) 
, b as (  -- таблица чисел от 1 до 3
  select number as n from master.dbo.spt_values where type='P' and number between 1 and 3
) 

select a.id, dateadd(day, b.n, a.d) as newD 
  from       a
  cross join b
  order by a.id, newD;


Осталось полученные даты вставить в вашу таблицу.
...
Рейтинг: 0 / 0
Добавление строк с диапазоном дат
    #40067264
Dolphiin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Wlr-l,

Спасибо, только у меня не находит эту системную таблицу(

авторselect *
from master..spt_values


Reference to database and/or server name in 'master..spt_values' is not supported in this version of SQL Server.
...
Рейтинг: 0 / 0
Добавление строк с диапазоном дат
    #40067298
Wlr-l
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dolphiin,

За время, прошедшее с момента дачи вам совета "таблица чисел от 1 до 29, прибавляйте", уже можно было бы создать таблицу чисел

Код: sql
1.
create table dbo.ii(i int not null primary key clustered);


и вбить в нее руками 30 строк.

Еще лучше создать постоянную таблицу дат.
...
Рейтинг: 0 / 0
Добавление строк с диапазоном дат
    #40067309
Dolphiin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Wlr-l,

Благодарю, теперь все получилось таким способом.

авторЕще лучше создать постоянную таблицу дат.

Если отдельная таблица календарь, можно как-то вместе с ней это же сделать?
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Добавление строк с диапазоном дат
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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