坚持今天早上我有点简单。
我有以下问题,读数和夏令时有点疯狂。
我需要在下面设置OLD = NEW。
select d.t0100 as tab1,
t.t2400 as tab2
from reportro.non_dst_readings d
inner join reportro.dst_readings t
on d.cust = t.cust
and to_date(d.readdate_ndst, 'dd-mmm-yy')
= (to_date(t.readdate, 'dd-mmm-yy') -1);
^^但是上面的选择不起作用,更不用说更新了。
我打算通过以下方式更新它们:
update (
select d.t0100 as tab1,
t.t2400 as tab2
from report.non_dst_readings d
inner join report.dst_readings t
on d.cust = t.cust
on to_date(d.readdate_ndst, 'dd-mmm-yy')
= (to_date(t.readdate, 'dd-mmm-yy') -1)
)
set old = new;
有什么想法吗?
再次感谢,如果没有StackOverflow,我会迷失方向:)
答案 0 :(得分:1)
NEW是Oracle中的关键字,使用其他内容作为标识符。 同样纠正ON语法,JOIN只能有一个ON子句
update (
select d.t0100 as oldVal ,
t.t2400 as newVaL
from report.non_dst_readings d
inner join report.dst_readings t
on d.cust = t.cust
WHERE to_date(d.readdate_ndst, 'dd-mm-yyyy')
= (to_date(t.readdate, 'dd-mm-yyyy') -1)
)
set oldVal = newVaL;