Probleme Übersetzen einer SQL Server-Abfrage zu Firebird
-
03-10-2019 - |
Frage
Ich bin neu in Firebird, und ich habe besondere Schwierigkeit diesen T-SQL zu Firebird SQL zu übersetzen. Dieser Code wird außerhalb der Datenbank gespeichert ist, nicht in einer gespeicherten Prozedur.
DECLARE @NumTotal int
DECLARE @NumUsed int
SELECT @NumTotal = COUNT(*)
FROM "some_Table"
WHERE "CreatedOn"=@CreatedOn
SELECT @NumUsed = COUNT(*)
FROM "some_Table"
WHERE "CreatedOn"=@CreatedOn AND "UserID" IS NOT NULL
SELECT @NumUsed AS "NumUsed", @NumTotal AS "NumTotal"
ich denke, aus den Fehlern und meine Experimenten, dass ich im Grunde irgendwie diese in eine gespeicherte Prozedur zu setzen gezwungen. Gibt es eine Weise, die ich dies tun kann, während immer noch den Code aus der Datenbank zu halten?
Lösung
Ihr Code kann auf eine einzige Abfrage vereinfacht werden:
SELECT COUNT(*) AS numTotal,
(SELECT COUNT(*)
FROM YOUR_TABLE
WHERE userid IS NOT NULL
AND createdon = @createdon) AS numUsed
FROM YOUR_TABLE
WHERE createdon = @createdon
Mit doppelten Anführungszeichen ist ANSI für ungewöhnliche Zeichen zu entkommen, von denen keines mir im Beispiel zu sehen.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow