1.2 KiB
1.2 KiB
Höchste raumID finden
/*
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