powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Процедура создания таблицы
2 сообщений из 2, страница 1 из 1
Процедура создания таблицы
    #39689849
SiмbаTLM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день,
Прошу помощи, туплю в написании процедуры на создание таблицы.
Суть в том, чтобы получить текущую дату и даты, которые были неделю назад, две недели назад, три недели назад.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
CREATE PROCEDURE dbo.Test
AS
   CREATE TABLE #t(Date_ DATETIME);
   INSERT INTO #t VALUES
('01-01-2018'),
(DATEADD(DAY, -7, '01-01-2018')),
(DATEADD(DAY, -14, '01-01-2018')),
(DATEADD(DAY, -21, '01-01-2018'));
   SELECT Test2Col = Date_ FROM #t;
GO
 
EXEC Test



То есть вызов процедуры Test (06032013) должен создавать таблицу:

06.03.2013
27.02.2013
20.02.2013
13.02.2013

Заранее спасибо за помощь)
...
Рейтинг: 0 / 0
Процедура создания таблицы
    #39689908
Владимир Затуливетер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
create or alter proc dbo.Test 
    @Date date
  , @WeekCount int
as
	with cteData ( WeekNum )
	as (
		select 0
		
		union all
		
		select WeekNum + 1
		from cteData
		where WeekNum < @WeekCount - 1
	)
	select dateadd(day, WeekNum * 7, @Date) as Date
	from cteData
	order by WeekNum
	option (maxrecursion 10000) -- 10000 - это максимальное число строк которое может вернуть процедура, замените если надо.
go

exec dbo.Test
    @Date = '2013-03-06'
  , @WeekCount = 4
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Процедура создания таблицы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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