laatzen/Shared/IdentNrGuppirung.sql
2023-05-09 09:01:12 +00:00

73 lines
2.9 KiB
Transact-SQL

DECLARE @Id INT = (SELECT MAX([ID]) FROM [IdentNr_Gruppendetail]);
INSERT INTO [IdentNr_Gruppendetail] ([ID], [Name])
OUTPUT [Inserted].[ID], [Inserted].[Name]
SELECT ROW_NUMBER() OVER(ORDER BY [Name]) + @Id AS [ID]
, [Gruppendetail].[Name] AS [Name]
FROM (SELECT DISTINCT [IdNrName].[Name]
FROM (SELECT [Identnr].[IdentNr]
, [Identnr].[Typ]
, 'WSD '
+ CASE WHEN [Identnr].[Nennweite] IS NOT NULL THEN CAST([Identnr].[Nennweite] AS VARCHAR) ELSE '0' END
+ ' / '
+ CASE WHEN [Identnr].[Temperatur] IS NOT NULL THEN CAST([Identnr].[Temperatur] AS VARCHAR) ELSE '0' END
+ '°' AS [Name]
FROM [Identnr]
WHERE [Typ] LIKE '%WSD%')
AS [IdNrName]
LEFT JOIN [IdentNr_Gruppendetail] ON [IdentNr_Gruppendetail].[Name] = [IdNrName].[Name]
WHERE [IdentNr_Gruppendetail].[ID] IS NULL)
AS [Gruppendetail]
SET @Id = (SELECT MAX([ID]) FROM [IdentNrGruppierung]);
SET IDENTITY_INSERT [IdentNrGruppierung] ON;
INSERT INTO [IdentNrGruppierung] (
[IdentNr]
, [GruppenID]
, [ID])
SELECT [MissingIdentNr].[IdentNr]
, [MissingIdentNr].[GruppenID]
, [MissingIdentNr].[ID]
FROM (SELECT [IdentNrNames].[IdentNr] AS [IdentNr]
, [IdentNr_Gruppendetail].[ID] AS [GruppenID]
, ROW_NUMBER() OVER(ORDER BY [IdentNrNames].[IdentNr]) + @Id AS [ID]
FROM (SELECT [Identnr].[IdentNr]
, [Identnr].[Typ]
,'WSD '
+ CASE WHEN [Identnr].[Nennweite] IS NOT NULL THEN CAST([Identnr].[Nennweite] AS VARCHAR) ELSE '0' END
+ ' / '
+ CASE WHEN [Identnr].[Temperatur] IS NOT NULL THEN CAST([Identnr].[Temperatur] AS VARCHAR) ELSE '0' END
+ '°' AS [Name]
FROM [Identnr]
WHERE [Typ] LIKE '%WSD%')
AS [IdentNrNames]
LEFT JOIN [IdentNr_Gruppendetail] ON [IdentNr_Gruppendetail].[Name] = [IdentNrNames].[Name]
LEFT JOIN [IdentNrGruppierung] ON [IdentNrGruppierung].[IdentNr] = [IdentNrNames].[IdentNr]
WHERE [IdentNrGruppierung].[IdentNr] IS NULL )
AS [MissingIdentNr]
SET IDENTITY_INSERT [IdentNrGruppierung] OFF;
SELECT [IdentNrGruppierung].[IdentNr] AS [IdentGroupirungNr]
, [Identnr].[IdentNr]
, [Identnr].[KurzBez]
, [Identnr].[Typ]
, [Identnr].[Nennweite]
, [Identnr].[Temperatur]
, [Identnr].[Druck]
, [Identnr].[Baulaenge]
, [IdentNr_Gruppendetail].[Name]
, [IdentNr_Gruppendetail].[ID] AS [IdNrGruppenDetailId]
, [IdentNrGruppierung].[GruppenID] AS [IdentNrGruppierungGruppenId]
, [IdentNrGruppierung].[ID] AS [IdentNrGruppierungId]
, [Identnr].[AnlageDatum]
FROM [Identnr]
LEFT JOIN [IdentNrGruppierung] ON [IdentNrGruppierung].[IdentNr] = [Identnr].[IdentNr]
LEFT JOIN [IdentNr_Gruppendetail] ON [IdentNr_Gruppendetail].[ID] = [IdentNrGruppierung].[GruppenID]
WHERE [Identnr].[Typ] LIKE '%WPD%'
OR [Identnr].[Typ] LIKE '%WPF%'
OR [Identnr].[Typ] LIKE '%WSD%'
ORDER BY [Identnr].[AnlageDatum] DESC