Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Динамическая вставка строк / 2 сообщений из 2, страница 1 из 1
07.03.2018, 21:42
    #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
08.03.2018, 01:54
    #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
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Динамическая вставка строк / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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