Как использовать результат оператора SQL в математическом выражении? - PullRequest
0 голосов
/ 04 ноября 2011

У меня есть два оператора SELECT, каждый из которых возвращает число, и я хотел бы разделить одно на другое. Что-то вроде следующего, если это будет работать:

SELECT
    SELECT
        SUM(SIZE)
    FROM
        GLOBAL_STATS_V_M
    WHERE
        ID IN ("DuplicatedRule", "OldRule", "RevRule", "TmpRule")
/
    SELECT
        SUM(SIZE)
    FROM
        GLOBAL_STATS_V_M
    WHERE
        ID IN ("Total")

При этом появляется «Ошибка запроса: рядом с« SELECT »: синтаксическая ошибка Невозможно выполнить оператор».

Добавление скобок не помогает.

Как это сделать?

Я использую Sqliteman

Ответы [ 2 ]

3 голосов
/ 05 ноября 2011

Вам необходимо добавить круглые скобки:

SELECT
    (SELECT
        SUM(SIZE)
    FROM
        GLOBAL_STATS_V_M
    WHERE
        ID IN ("DuplicatedRule", "OldRule", "RevRule", "TmpRule")
    )
    /
    (SELECT
        SUM(SIZE)
    FROM
        GLOBAL_STATS_V_M
    WHERE
        ID IN ("Total")
    )
0 голосов
/ 05 ноября 2011

Две проблемы здесь.

  1. Вам нужно заключить в скобки оба оператора sub select.
  2. Необходимо завершить внешний оператор с помощью FROM DUAL.

    выберите (выберите ....) / (выберите ....) как общее из двойного

На самом деле я бы предпочел написать запрос по-другому для чистоты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...