Files
Checkin-Tool/pages/Page1/queries/qryTeilnehmer/qryTeilnehmer.txt
T
2026-07-31 10:42:00 +00:00

194 lines
3.8 KiB
Plaintext

DECLARE @IDReise bigint =
{{ Termin.selectedOptionValue }};
SELECT
BT.IDBuchungTN AS TeilnehmerID,
B.Vorgang,
AP.Name,
AP.Vorname,
COALESCE(
NULLIF(E.Mailadresse, N''),
N''
) AS [E-Mail],
CONVERT(
varchar(10),
AP.Geburtsdatum,
104
) AS [Geb.-Datum],
COALESCE(
W.Zus_Wunsch,
N''
) AS Zus_Wunsch,
COALESCE(
LJSON.LeistungenJSON,
N'[]'
) AS LeistungenJSON,
COALESCE(
SP.Skipassnummer,
N''
) AS Skipassnummer
FROM dbo.Buchung B
INNER JOIN dbo.BuchungTN BT
ON BT.IDBuchung_FS = B.IDBuchung
INNER JOIN dbo.AdressePerson AP
ON AP.IDAdressePerson =
BT.IDAdressePerson_FS
OUTER APPLY
(
SELECT TOP (1)
AK.Wert AS Mailadresse
FROM dbo.AdresseKommunikation AK
WHERE
AK.IDAdressePerson_FS =
AP.IDAdressePerson
AND AK.Wert LIKE N'%@%'
ORDER BY
AK.IDAdresseKommunikation
) E
OUTER APPLY
(
SELECT
STRING_AGG(
NULLIF(
LTRIM(RTRIM(BTW.Text)),
N''
),
N' · '
) AS Zus_Wunsch
FROM dbo.BuchungTNWunsch BTW
WHERE
BTW.IDBuchungTN_FS =
BT.IDBuchungTN
) W
OUTER APPLY
(
SELECT
(
SELECT
X.Bezeichnung AS [name],
X.Wert AS [value]
FROM
(
SELECT DISTINCT
L.Bezeichnung,
CASE
WHEN NULLIF(
LTRIM(RTRIM(BTL.Nummer)),
N''
) IS NOT NULL
THEN BTL.Nummer
ELSE N'1'
END AS Wert
FROM dbo.BuchungTNLeistung BTL
INNER JOIN dbo.Leistung L
ON L.IDLeistung =
BTL.IDLeistung_FS
WHERE
BTL.IDBuchungTN_FS =
BT.IDBuchungTN
AND COALESCE(
L.Status,
N''
) <> N'L'
AND EXISTS
(
SELECT 1
FROM dbo.BuchungTNLeistungPreis BTLP
INNER JOIN dbo.BuchungTNPreis BTP
ON BTP.IDBuchungTNPreis =
BTLP.IDBuchungTNPreis_FS
WHERE
BTLP.IDBuchungTNLeistung_FS =
BTL.IDBuchungTNLeistung
AND BTP.Status IN
(N'F', N'O')
)
) X
ORDER BY
X.Bezeichnung
FOR JSON PATH
) AS LeistungenJSON
) LJSON
OUTER APPLY
(
SELECT TOP (1)
BTL.Nummer AS Skipassnummer
FROM dbo.BuchungTNLeistung BTL
INNER JOIN dbo.Leistung L
ON L.IDLeistung =
BTL.IDLeistung_FS
WHERE
BTL.IDBuchungTN_FS =
BT.IDBuchungTN
AND L.Bezeichnung LIKE N'%Skipass%'
AND NULLIF(
LTRIM(RTRIM(BTL.Nummer)),
N''
) IS NOT NULL
AND EXISTS
(
SELECT 1
FROM dbo.BuchungTNLeistungPreis BTLP
INNER JOIN dbo.BuchungTNPreis BTP
ON BTP.IDBuchungTNPreis =
BTLP.IDBuchungTNPreis_FS
WHERE
BTLP.IDBuchungTNLeistung_FS =
BTL.IDBuchungTNLeistung
AND BTP.Status IN
(N'F', N'O')
)
ORDER BY
BTL.IDBuchungTNLeistung
) SP
WHERE
B.IDReise_FS = @IDReise
AND BT.Status = N'F'
ORDER BY
B.Vorgang,
AP.Name,
AP.Vorname,
BT.Position;