问个SQL语句

chd2001 2007-12-26 11:43:57
update a
set a.usdl_level= max(gdrule_id)
from t_userde a,t_graderule b
where a.usdl_experience>=b.gdrule_experience

但是这样的话:聚合不应出现在 UPDATE 语句的集合列表中。
应该怎么写才对?
...全文
71 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
utpcb 2007-12-26
  • 打赏
  • 举报
回复
update a
set asdl_level= (elect max(gdrule_id)
from t_userde a,t_graderule b where a.usdl_experience> =b.gdrule_experience )

arrow_gx 2007-12-26
  • 打赏
  • 举报
回复
update a
set a.usdl_level= max(gdrule_id)
from t_userde a,t_graderule b
where a.usdl_experience> =b.gdrule_experience

但是这样的话:聚合不应出现在 UPDATE 语句的集合列表中。
应该怎么写才对?


不能用这个方法直接 update ,具体要看你的表,以及两个表数据见的关系,你吧表结构贴出来看看
dawugui 2007-12-26
  • 打赏
  • 举报
回复
update a 
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


上面那个写错了.
wzy_love_sly 2007-12-26
  • 打赏
  • 举报
回复
update @tb set id=(select max(id) from @tb where ....)
dawugui 2007-12-26
  • 打赏
  • 举报
回复
update a 
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
chd2001 2007-12-26
  • 打赏
  • 举报
回复
都不行啊,不过到是给了我启发,修改后的语句如下:
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


34,837

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧