2010-09-16 17 views
1

Je ne connais pas bien Firebird et j'ai beaucoup de mal à traduire ce T-SQL en langage Firebird SQL. Ce code est stocké en dehors de la base de données, pas dans une procédure stockée. Je suppose à partir des erreurs et de mon expérimentation que je suis fondamentalement obligé de mettre cela dans une procédure stockée d'une manière ou d'une autre. Est-ce que je peux faire ceci tout en maintenant le code hors de la base de données?Problème lors de la traduction d'une requête SQL Server vers Firebird

Répondre

1

Votre code peut être simplifiée à une seule requête:

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 

L'utilisation des guillemets doubles est ANSI pour échapper à des caractères inhabituels, dont aucun je vois dans l'exemple.

+0

Vous avez manqué le 'WHERE CreatedOn = @ CreatedOn' sur votre requête externe? –

+0

@Joe Stefanelli: Correction, merci. –

+0

Noms de tables et de colonnes Firebird majuscules si vous ne les avez pas indiqués. – Taudris