2014-04-09 3 views
0

я пытался выбрать конкретную запись, которая удовлетворяет условию, если column1 = column2 + column3выбрать строки, если один столбец равен сумме двух других

SELECT gtt_id , 
    column1, 
    SUM(NVL(column2, 0) + NVL(column3, 0)) AS total 
FROM my_table where column1 = total 
GROUP BY gtt_id, 
column1; 

я получаю следующее сообщение об ошибке:

ORA-00904: "TOTAL": invalid identifier

ответ

1

Вы не должны использовать общее количество в одном запросе, для этого вам нужно обернуть запрос и использовать его во внешнем цикле.

SELECT gtt_id,column1,total 
FROM 
(
SELECT gtt_id , 
     column1, 
     SUM(NVL(column2, 0) + NVL(column3, 0)) total 
FROM my_table 
--where column1 = total 
GROUP BY gtt_id, 
column1 
) 
where column1 = total; 
Смежные вопросы