Problemi traducendo una query SQL Server a Firebird
-
03-10-2019 - |
Domanda
Sono nuovo di Firebird, e sto avendo particolare difficoltà a tradurre questa T-SQL per Firebird SQL. Questo codice viene memorizzato al di fuori del database, non in una stored procedure.
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"
Credo che dagli errori e la mia sperimentazione che sto praticamente costretto a mettere questo in una stored procedure in qualche modo. C'è un modo che io possa fare questo, pur mantenendo il codice di base di dati?
Soluzione
Il codice può essere semplificata in una singola query:
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
Utilizzando i doppi apici è ANSI per sfuggire caratteri inusuali, nessuno dei quali vedo l'esempio.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow