Вопрос

Я новичок в Firebird, и я особаю сложность перевода этого T-SQL в Firebird SQL. Этот код хранится вне базы данных, а не в сохраненной процедуре.

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"

Я думаю, от ошибок и моих экспериментов, которые я в основном вынужден вносить это в хранимую процедуру как-то. Есть ли способ сделать это, пока не будешь держать код из базы данных?

Это было полезно?

Решение

Ваш код может быть упрощен в один запрос:

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

Использование двойных кавычек - это ANSI для избежания необычных персонажей, ни один из которых я вижу в примере.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top