Ich versuche, Werte in eine Fakturierungstabelle einzufügen. Für den BillingAmount möchte ich, dass sich das ändert, je nachdem, zu welcher Zeit der Gast auscheckt. Wenn der Gast vor Mittag auscheckt, möchte ich, dass der BillingAmount nur die QuotedRate ist, multipliziert mit der Anzahl der Übernachtungen. Wenn der Gast nach 13.00 Uhr auscheckt, möchte ich einen Zuschlag von 50% hinzufügen. Für die Check-Out-Zeit verwende ich nur die aktuelle Systemzeit. Einfach gesagt, ich versuche, eine IF-Anweisung in einer INSERT INTO-Abfrage zu verwenden. Ich bekomme jedoch immer Syntaxfehler um die IF-Anweisung. Wie würde ich dies formatieren, um Syntaxfehler zu vermeiden? Jede Hilfe wäre willkommen.Verwenden einer IF-Anweisung in einer INSERT INTO-Anweisung
SET IDENTITY_INSERT Billing OFF
INSERT INTO Billing (FolioID, BillingCategoryID, BillingDescription, BillingAmount, BillingItemQty, BillingItemDate)
VALUES(24
, 1
, 'Room'
, IF(CAST(GETDATE() as time) < '12:00 PM')
SELECT QuotedRate * Nights AS "TotalLodging"
FROM Folio
ELSE IF(CAST(GETDATE() as time) > '1:00 PM')
SELECT (QuotedRate * Nights) + ((QuotedRate * Nights) * .50) AS "TotalLodging"
FROM Folio
, 1
, GETDATE());
Verwenden Sie 'CASE WHEN' Aussage. Aber ich denke, es ist besser, wenn Sie "Logik" in Ihrer Business-Schicht (.net) arbeiten und 'sql query' nur zum Speichern/Aktualisieren von Daten verwenden – Fabio
Dies ist nicht direkt relevant für Antworten, aber was sollte der Gast berechnet werden wenn sie um 12:30 Uhr auschecken? –