Files
Morgenstern/engomo/sql.md
2025-01-23 12:35:18 +00:00

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