急!!!这个SQL语句怎么写啊?

常恨村姑无觅处 2003-11-18 01:23:33
就是有两个表,一个是 AAA (A,B,C,JEHZ),一个是 BBB(A,B,C,JE),
现在就是要把BBB中 A,B,C 均相同的记录汇总起来,把汇总金额写到 AAA中的
JEHZ中去。

例子:
BBB 表:
'01','ss','cc',10
'01','ss','cc',15
'01','dd','ee',10
'01','dd','ee',20
则 AAA表应为:
'01','ss','cc',25
'01','dd','ee',30
,注意是update,因为AAA表中有记录,只是汇总金额不对,现在要重新算。还有,是
sybase 数据库
...全文
51 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
heimang 2003-11-24
  • 打赏
  • 举报
回复
update aaa set hzje=(select sum(je) from bbb where aaa.A=bbb.A and aaa.B=bbb.B and aaa.C=bbb.C group by a,b,c) where exists (select 1 from aaa,bbb where aaa.A=bbb.A and aaa.B=bbb.B and aaa.C=bbb.C)

  • 打赏
  • 举报
回复
结贴了,谢谢 yujiabian 和各位朋友
  • 打赏
  • 举报
回复
同志哥,你的 BBB 表能保存吗,你的主键是什么呢?
实在要写也并不难,字看你程序设计的基本功怎么 样。
yujiabian 2003-11-24
  • 打赏
  • 举报
回复
update aaa set hzje=(select sum(je) from bbb where aaa.A=bbb.A and aaa.B=bbb.B and aaa.C=bbb.C group by a,b,c)
  • 打赏
  • 举报
回复
看来是没法用一句写了,有人能给个存储过程的例子吗?
  • 打赏
  • 举报
回复
呵呵, heimang(黑蟒) ( ) 的答案更严密,不过不好意思,我已经结贴了,只能在此表示
感谢了。
  • 打赏
  • 举报
回复
TO dennis2001(dennis2001) 、 wanzhouxu(小徐) :
SQL语句不对,"subquery returned more than 1 value",返回值多于1个
wanzhouxu 2003-11-18
  • 打赏
  • 举报
回复
我认为楼上的语句有个小问题,执行结果将导致 aaa中有,bbb中无的记录的结果为null
我认为应改为:
update aaa set hzje=(select sum(je) from bbb group by a,b,c) where aaa.a in [select aaa.a from aaa,bbb where aaa.A=bbb.A and aaa.B=bbb.B and aaa.C=bbb.C]
丹朱学棋 2003-11-18
  • 打赏
  • 举报
回复
to:dennis2001(dennis2001)

(select sum(je) from bbb group by a,b,c) where aaa.A=bbb.A and
aaa.B=bbb.B and aaa.C=bbb.C
上面这个语句的结果是个结果集吧,恐怕不能被正确update!??
大概还是要用临时表或用游标、过程才好?
qqjj7758 2003-11-18
  • 打赏
  • 举报
回复
e
dennis2001 2003-11-18
  • 打赏
  • 举报
回复
问题本身并不复杂,不过想用一条sql写出来,好像难度比较大
update aaa set hzje=(select sum(je) from bbb group by a,b,c) where aaa.A=bbb.A and
aaa.B=bbb.B and aaa.C=bbb.C
我现在没有环境测试,你自己试试看行不行
caojiang 2003-11-18
  • 打赏
  • 举报
回复
一句话写不完,写个过程吧,先把BBB表的汇总记录放到一个临时表里,再和AAA表比较更新

752

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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