Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Вывод временных таблиц с циклами  [new]
seryoga_m
Member

Откуда:
Сообщений: 5
Добрый день!

Почему выводиться только первая таблица с запроса?
Что нужно сделать, что бы выводились обе таблицы?
DECLARE @InStartDate DATE;
DECLARE @InStopDate DATE;

SET @InStartDate='20180301';
SET @InStopDate='20180701';

IF OBJECT_ID('tempdb..#1111') IS NOT NULL DROP TABLE #1111

CREATE TABLE #1111 (dates date)

while @InSTartDate<=@InStopDate
begin
SELECT @InStartDate=DATEADD(mm,1,@InStartDate);


INSERT INTO #1111
SELECT @InStartDate
end

IF OBJECT_ID('tempdb..#2222') IS NOT NULL DROP TABLE #2222

CREATE TABLE #2222 (dates date)

while @InSTartDate<=@InStopDate
begin
SELECT @InStartDate=DATEADD(mm,1,@InStartDate);


INSERT INTO #2222
SELECT @InStartDate
end

SELECT*FROM #1111
SELECT*FROM #2222
27 июн 19, 15:35    [21916332]     Ответить | Цитировать Сообщить модератору
 Re: Вывод временных таблиц с циклами  [new]
Yuri Abele
Member

Откуда: Латвия> Литва > Тольятти > Wiesbaden > Karlsruhe
Сообщений: 1661
seryoga_m,

а Вы где это наблюдаете? В SQL Server Management Studio или в написанном на .NET клиенте?
27 июн 19, 15:41    [21916342]     Ответить | Цитировать Сообщить модератору
 Re: Вывод временных таблиц с циклами  [new]
Yuri Abele
Member

Откуда: Латвия> Литва > Тольятти > Wiesbaden > Karlsruhe
Сообщений: 1661
SqlDataReader.NextResult
27 июн 19, 15:43    [21916346]     Ответить | Цитировать Сообщить модератору
 Re: Вывод временных таблиц с циклами  [new]
seryoga_m
Member

Откуда:
Сообщений: 5
Yuri Abele,
В SQL Server Management Studio
27 июн 19, 15:44    [21916348]     Ответить | Цитировать Сообщить модератору
 Re: Вывод временных таблиц с циклами  [new]
Konst_One
Member

Откуда:
Сообщений: 11518
а что за задачу решаете? тут циклы то и не нужны как бы
27 июн 19, 15:47    [21916353]     Ответить | Цитировать Сообщить модератору
 Re: Вывод временных таблиц с циклами  [new]
seryoga_m
Member

Откуда:
Сообщений: 5
Konst_One,
Вопрос общего характера.
Как вывести две(все) таблицы в данной ситуации.
Цикл с датами просто пример.
27 июн 19, 15:53    [21916358]     Ответить | Цитировать Сообщить модератору
 Re: Вывод временных таблиц с циклами  [new]
Konst_One
Member

Откуда:
Сообщений: 11518
странные телодвижения в циклах у вас, конечно. ну вот может так вам будет понятней:

DECLARE @InStartDate DATE;
DECLARE @InStopDate DATE;

SET @InStartDate='20180301';
SET @InStopDate='20180701';

CREATE TABLE #t1 (dates date);
CREATE TABLE #t2 (dates date);

while @InSTartDate<=@InStopDate
begin
	SET @InStartDate = DATEADD(mm,1,@InStartDate);

	INSERT INTO #t1 (dates) values (@InStartDate);
	INSERT INTO #t2 (dates) values (@InStartDate);
end


SELECT*FROM #t1
SELECT*FROM #t2

DROP TABLE #t1
DROP TABLE #t2
GO
27 июн 19, 15:59    [21916365]     Ответить | Цитировать Сообщить модератору
 Re: Вывод временных таблиц с циклами  [new]
seryoga_m
Member

Откуда:
Сообщений: 5
Konst_One,
Спасибо.
Но если данные в цикле разные...
По сути имеем два(много) разных цикла и две(много) разных временных таблицы.
В итоге потом соединяем их в одну, но всегда выводится только та таблица в которой было указано первое "END", после него больше ничего не выводится.

DECLARE @InStartDate DATE;
DECLARE @InStopDate DATE;

SET @InStartDate='20180301';
SET @InStopDate='20180701';

IF OBJECT_ID('tempdb..#1111') IS NOT NULL DROP TABLE #1111

CREATE TABLE #1111 (dates date)

while @InSTartDate<=@InStopDate
begin
SELECT @InStartDate=DATEADD(ww,1,@InStartDate);


INSERT INTO #1111
SELECT @InStartDate
end

IF OBJECT_ID('tempdb..#2222') IS NOT NULL DROP TABLE #2222

CREATE TABLE #2222 (dates date)

while @InSTartDate<=@InStopDate
begin
SELECT @InStartDate=DATEADD(mm,1,@InStartDate);


INSERT INTO #2222
SELECT @InStartDate
end

SELECT*FROM #1111
SELECT*FROM #2222
27 июн 19, 16:14    [21916383]     Ответить | Цитировать Сообщить модератору
 Re: Вывод временных таблиц с циклами  [new]
Konst_One
Member

Откуда:
Сообщений: 11518
DECLARE @InStartDate DATE;
DECLARE @InStopDate DATE;

SET @InStartDate='20180301';
SET @InStopDate='20180701';

IF OBJECT_ID('tempdb..#1111') IS NOT NULL DROP TABLE #1111

CREATE TABLE #1111 (dates date)

while @InSTartDate<=@InStopDate
begin
SELECT @InStartDate=DATEADD(ww,1,@InStartDate);


INSERT INTO #1111
SELECT @InStartDate
end

IF OBJECT_ID('tempdb..#2222') IS NOT NULL DROP TABLE #2222

CREATE TABLE #2222 (dates date)


SET @InStartDate='20180301';

while @InSTartDate<=@InStopDate
begin
SELECT @InStartDate=DATEADD(mm,1,@InStartDate);


INSERT INTO #2222
SELECT @InStartDate
end

SELECT*FROM #1111
SELECT*FROM #2222
27 июн 19, 16:17    [21916389]     Ответить | Цитировать Сообщить модератору
 Re: Вывод временных таблиц с циклами  [new]
seryoga_m
Member

Откуда:
Сообщений: 5
Konst_One,
спасибо.
Я так понимаю в каждом новом цикле нужно будет указывать заново переменные.
Я думал есть вариант где не нужно этого делать.
Просто не удобно если таких циклов 10, заново указывать 10 переменных.
27 июн 19, 16:28    [21916399]     Ответить | Цитировать Сообщить модератору
 Re: Вывод временных таблиц с циклами  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31356
seryoga_m
Я так понимаю в каждом новом цикле нужно будет указывать заново переменные.
Я думал есть вариант где не нужно этого делать.
Просто не удобно если таких циклов 10, заново указывать 10 переменных.
Напишите по другому, что бы не указывать.
Вы же эту переменную сами меняете, с чего это сервер вам будет не подчиняться, и её не менять?
27 июн 19, 17:02    [21916438]     Ответить | Цитировать Сообщить модератору
 Re: Вывод временных таблиц с циклами  [new]
Yuri Abele
Member

Откуда: Латвия> Литва > Тольятти > Wiesbaden > Karlsruhe
Сообщений: 1661
Как замудрено-то ...
Вы же перед вторым циклом уже счетчики сдвинули. Там цикл второй ни разу не выполняется
27 июн 19, 18:04    [21916488]     Ответить | Цитировать Сообщить модератору
 Re: Вывод временных таблиц с циклами  [new]
Yuri Abele
Member

Откуда: Латвия> Литва > Тольятти > Wiesbaden > Karlsruhe
Сообщений: 1661
alexeyvg,
простите, Вы уже до меня ответили
27 июн 19, 18:05    [21916490]     Ответить | Цитировать Сообщить модератору
 Re: Вывод временных таблиц с циклами  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31356
Yuri Abele
Как замудрено-то ...
Вы же перед вторым циклом уже счетчики сдвинули. Там цикл второй ни разу не выполняется
Да, нужно просто кроме @InStartDate сделать ещё одну переменную, для цикла, и перед каждым циклом её присваивать из @InStartDate.
27 июн 19, 18:57    [21916541]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить