有单据表case,明细表history。明细表记录case的处理记录。每个case可能有多个history。
case.id = history.caseid问:
我要把所有case的name(随便说的)字段值改成case的最后一条(id自增)处理记录的name(还是随便说的)字段的值。
oracle 中子查询不能用order by,咋个整?小弟没分了。
case.id = history.caseid问:
我要把所有case的name(随便说的)字段值改成case的最后一条(id自增)处理记录的name(还是随便说的)字段的值。
oracle 中子查询不能用order by,咋个整?小弟没分了。
update case ca set ca.name = (select hi.name from history hi
where hi.caseid = ca.id
and hi.caseid = (select max(hi1.caseid) from history hi1
and hi1.caseid = hi.caseid))
这样子就可以了~~~
set ca.name =
(select hi.name, max(hi.caseid)
from history hi
group by hi.name
where hi.caseid = ca.id)
update case ca
set ca.name =
(select hi.name
from (select h.name, max(h.caseid) caseid
from history h
group by h.name) hi
where hi.caseid = ca.id);