导航
  • 主页
  • 基础类
  • 应用实例
  • 新技术前沿

问个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 语句的集合列表中。
应该怎么写才对?
...全文
42 点赞 收藏 6
写回复
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


回复
发动态
发帖子
MS-SQL Server
创建于2007-09-28

3.2w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
社区公告
暂无公告