update a
set a.usdl_level= max(gdrule_id)
from t_userde a,t_graderule b
where a.usdl_experience>=b.gdrule_experience但是这样的话:聚合不应出现在 UPDATE 语句的集合列表中。
应该怎么写才对?
set a.usdl_level= max(gdrule_id)
from t_userde a,t_graderule b
where a.usdl_experience>=b.gdrule_experience但是这样的话:聚合不应出现在 UPDATE 语句的集合列表中。
应该怎么写才对?
set a.usdl_level= max(gdrule_id)
from t_userde a,(select gdrule_experience , max(gdrule_id) from b group by gdrule_experience) t
where a.usdl_experience = t.gdrule_experience
set a.usdl_level= t.gdrule_id
from t_userde a,(select gdrule_experience , gdrule_id = max(gdrule_id) from b group by gdrule_experience) t
where a.usdl_experience = t.gdrule_experience 上面那个写错了.
set a.usdl_level= max(gdrule_id)
from t_userde a,t_graderule b
where a.usdl_experience> =b.gdrule_experience 但是这样的话:聚合不应出现在 UPDATE 语句的集合列表中。
应该怎么写才对?
不能用这个方法直接 update ,具体要看你的表,以及两个表数据见的关系,你吧表结构贴出来看看
set asdl_level= (elect max(gdrule_id)
from t_userde a,t_graderule b where a.usdl_experience> =b.gdrule_experience )
update a
set a.usdl_level= gdrule_id
from t_userdetail a,
(select c.usdl_id usdl_id,max(d.gdrule_id) gdrule_id
from sodachofo.t_userdetail c,bbs.t_graderule d
where c.usdl_experience>=(d.gdrule_experience)
group by c.usdl_id) b
where a.usdl_id=b.usdl_id