45 lines
1.2 KiB
Markdown
45 lines
1.2 KiB
Markdown
# 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
|
|
``` |