Разделить два значения из одного столбца, а затем отображать только значения от 0 до 3

#sql

#sql

Вопрос:

Я не уверен, возможно ли это вообще, но я пытаюсь отфильтровать «результаты» после разделения двух значений из одного столбца (что уже работает).

 SELECT
  "Business Name",
  (sum(CASE
       WHEN "Source Indicator" = 'Month end cash balance'
         THEN "EUR AMOUNT"
       END) / sum(CASE
                  WHEN "Source Indicator" = 'Total OPEX'
                    THEN "EUR AMOUNT"
                  END)) AS "Run Rate"
FROM "Steering_database_eur"
WHERE MONTH("End Date") = (MONTH(GETDATE()) - 1)
GROUP BY "Business Name"
 

Теперь все, что мне нужно, это отображать только значения от -10 до 3 в столбце «Скорость выполнения».

Заранее большое спасибо

Комментарии:

1. Какую СУБД вы используете?

Ответ №1:

Попробуйте это

 SELECT * 
FROM (

        --your query here
)t
WHERE [Run Rate] BETWEEN 0 AND 3
 

Комментарии:

1. Теперь это сработало для меня, возможно, я сделал что-то не так, но выдает ошибку, что «Скорость выполнения» является недопустимым столбцом.

2. Вы пробовали то же самое, что и выше: просто обновили скорость выполнения с помощью «[Скорость выполнения]`

3. Да, я пробовал использовать точный формат, за исключением того, что столбцы записываются с помощью » «, где я использую код (отчеты Zoho).

Ответ №2:

Не уверен, что это то, что вам нужно:

 SELECT
         "Business Name",
         (sum(case
                 when "Source Indicator"  = 'Month end cash balance' then "EUR AMOUNT"
             end) / sum(case
                 when "Source Indicator"  = 'Total OPEX' then "EUR AMOUNT"
             end)) as "Run Rate"
FROM  "Steering_database_eur" 
WHERE    MONTH("End Date")  = (MONTH(GETDATE()) -1)
GROUP BY  "Business Name" 
HAVING  (sum(case
                 when "Source Indicator"  = 'Month end cash balance' then "EUR AMOUNT"
             end) / sum(case
                 when "Source Indicator"  = 'Total OPEX' then "EUR AMOUNT"
             end)) BETWEEN 0 AND 3