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

Откуда:
Сообщений: 82
Привет народ!
Помогите с запросом SQL.

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

[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 и т.д.
7 мар 18, 21:42    [21244124]     Ответить | Цитировать Сообщить модератору
 Re: Динамическая вставка строк  [new]
Дедушка
Member

Откуда: Город трёх революций
Сообщений: 5111
;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
8 мар 18, 01:54    [21244485]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить