clear markdown compare help best fiddles feedback
clear markdown donate comments/suggestions/bugs a leap of faith? bible365 diddy dollings
By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0. 2591697 fiddles created (45711 in the last week).

CREATE TABLE [dbo].[Nomenclature]( [GTIN] [nvarchar](max) NULL, [Торговое наименование] [nvarchar](max) NULL, [Наименование товара на этикетке] [nvarchar](max) NULL, ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]; INSERT INTO [dbo].[Nomenclature] ([GTIN] ,[Торговое наименование] ,[Наименование товара на этикетке]) VALUES (N'1111', N'Амлодипин', N'таблетки "амлодипин" по 25 мг'), (N'1120', N'Амлодипин', N'таблетки "амлодипин" по 50 мг'), (N'1148', N'Анальгин', N'Анальгин таблетки 300 мг №10'); SELECT * FROM Nomenclature;
GTIN Торговое наименование Наименование товара на этикетке
1111 Амлодипин таблетки "амлодипин" по 25 мг
1120 Амлодипин таблетки "амлодипин" по 50 мг
1148 Анальгин Анальгин таблетки 300 мг №10
 hidden batch(es)

WITH cte1 AS ( SELECT *, NULL PARENT_ID FROM Nomenclature UNION ALL SELECT DISTINCT NULL, [Торговое наименование], NULL, NULL FROM Nomenclature ), cte2 AS( SELECT ROW_NUMBER() OVER (ORDER BY [Торговое наименование], [Наименование товара на этикетке]) ID, [Торговое наименование], [Наименование товара на этикетке], [GTIN] FROM cte1 ) SELECT t1.ID, t1.[Торговое наименование] NAME, t1.[Наименование товара на этикетке] Name_of_sec_pack, t1.GTIN, CASE WHEN t1.[GTIN] IS NOT NULL THEN t2.ID END PARENT_ID FROM cte2 t1 JOIN cte2 t2 ON t1.[Торговое наименование] = t2.[Торговое наименование] AND t2.[GTIN] IS NULL ORDER BY t1.ID
ID NAME Name_of_sec_pack GTIN PARENT_ID
1 Амлодипин
2 Амлодипин таблетки "амлодипин" по 25 мг 1111 1
3 Амлодипин таблетки "амлодипин" по 50 мг 1120 1
4 Анальгин
5 Анальгин Анальгин таблетки 300 мг №10 1148 4
 hidden batch(es)