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

Есть таблица. В таблице одна из колонок имеет данные с количеством строк (Лоты)- это количество клонов строк.

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
[src]Исходная			Результат	
№ РПЗ	Лоты		№ РПЗ	Лоты
9.992	2		9.992-1	  2
89.11	2		9.992-2	  2
89.138	3	        89.81-1   2
	                89.81-2   2
			89.138-1  3
			89.138-2  3
			89.138-3  3
			

[/SRC]

Необходимо написать запрос, который вставил клоны строк, количество которых указано в колонке лоты, и переименовать значения в колонке № РПЗ. Первая-1, вторая -2 и т.д.
...
Рейтинг: 0 / 0
Динамическая вставка строк
    #39612128
Фотография Дедушка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
;with
T(id, rpz, lots) as
	(
	select
		id, rpz, lots
	from (values(1, '9.992', 2),(2, '89.11', 2),(3, '89.138', 3))t(id, rpz, lots)
	),
N1(n) as
	(
	select top 3
		row_number() over (order by s1.object_id)
	from
		sys.objects as s1
		cross join sys.objects as s2
	),
N2(n1,n2) as
	(
	select
		n1.n, n2.n
	from
		N1 n1
		inner join N1 n2 on n2.n <= n1.n
	)

select
	t.rpz + '-' + cast(n.n2 as char(1)) as rpz,
	t.lots
from
	T t
	inner join N2 n on n.n1 = t.lots
order by
	t.id, n.n2
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Динамическая вставка строк
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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