【发布时间】:2014-10-11 03:03:30
【问题描述】:
我正在创建两个我希望对其进行操作的伪列(取它们的百分比差异),这通常可以使用两个数字字段来完成。但是我遇到了一个错误;
ORA-00904: "pseudocolumn_B": 无效标识符
我的代码:
select DW.mykey
, sum(case
when ms.day_date BETWEEN TO_DATE('10/09/2014', 'DD/MM/YYYY') AND TO_DATE('07/10/2014', 'DD/MM/YYYY')
then ms.numbers
else 0
end) pseudocolumn_A
, sum(case
when ms.day_date BETWEEN TO_DATE('03/08/2014', 'DD/MM/YYYY') AND TO_DATE('09/09/2014', 'DD/MM/YYYY')
then ms.numbers
else 0
end) pseudocolumn_B
(pseudocolumn_A - pseudocolumn_B)/pseudocolumn_B as change_in_pseudo_columns --This is the line that fails.
from table_1 DW
join table_2 ms
on ms.mykey = DW.mykey
WHERE dw.some_field = 'some_value'
group by DW.mykey
order by DW.mykey
我相信我之前已经能够使用非 Oracle 数据库做到这一点,因此这对 Oracle 来说有些不同,但我可能错了。如上尝试,如何对伪列进行操作?
【问题讨论】: