Add engomo/sql.md
This commit is contained in:
45
engomo/sql.md
Normal file
45
engomo/sql.md
Normal file
@@ -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
|
||||||
|
```
|
||||||
Reference in New Issue
Block a user