From fc67732e51d9a3b1eeef31a64f960684ca69380e Mon Sep 17 00:00:00 2001 From: admManuel Date: Thu, 23 Jan 2025 12:35:18 +0000 Subject: [PATCH] Add engomo/sql.md --- engomo/sql.md | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 engomo/sql.md diff --git a/engomo/sql.md b/engomo/sql.md new file mode 100644 index 0000000..f20ec13 --- /dev/null +++ b/engomo/sql.md @@ -0,0 +1,45 @@ +# Höchste raumID finden + +```sql +/* +Datasources > SQL-begehung_raume +*/ + +DECLARE @modus_raum NVARCHAR(255) = '$state.modus_raum'; +DECLARE @protokoll_id NVARCHAR(255) = '$state.protokoll_id'; + +IF @modus_raum = 'new' AND @protokoll_id != '' +BEGIN + -- Prüfung, ob Einträge zur übergebenen protokoll_id existieren. + IF EXISTS ( + SELECT 1 + FROM [engomo].[dbo].[begehung_raume] + WHERE [protokoll_id] = @protokoll_id + ) + BEGIN + -- Es existieren Einträge, den höchsten raum_id-Wert ermitteln und um 1 erhöhen + SELECT + ISNULL(MAX(CAST([raum_id] AS INT)), 0) + 1 AS next_raum_id + --'' AS raum_bezeichnung -- Leerer Wert für raum_bezeichnung + FROM + [engomo].[dbo].[begehung_raume] + WHERE + [protokoll_id] = @protokoll_id; + END + ELSE + BEGIN + -- Es existieren keine Einträge, 1 zurückgeben + SELECT + 1 AS next_raum_id + --'' AS raum_bezeichnung -- Leerer Wert für raum_bezeichnung + END +END +ELSE IF @protokoll_id = '' +BEGIN + -- Abfrage ohne protokoll_ID, sortiert nach raum_id absteigend + SELECT + [protokoll_id] + FROM + [engomo].[dbo].[begehung_raume] +END +``` \ No newline at end of file