将明细数据汇总填入另一表中(在线等)

llh6795 2010-05-26 09:47:21
有两表 XDMX, FPMX
XDMX 明细数据
FPBH WXBH WXSH CPPH CPSL
66710 C126 Y1 A001 66
66710 C126 Y1 A002 50.6
66710 C126 Y1 A003 70.2
66710 B-1 D-2 F001 82
66710 B-1 D-2 F002 83
...

FPMX
FPBH HTBH WXBH WXSH CPSL
66710 1036
...

当两表中的FPBH一样时,将XDMX的数据汇总填入FPMX
例如当fpbh为66710时
FPMX
FPBH HTBH WXBH WXSH CPSL
66710 1036 C126 Y1 186.8
66710 1036 B-1 D-2 165

怎么实现?请大家指点,先谢谢了(急用,在线等)
...全文
152 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
幸运的意外 2010-05-27
  • 打赏
  • 举报
回复
结果得到就恭喜楼主了。呵呵
llh6795 2010-05-27
  • 打赏
  • 举报
回复

(所影响的行数为 2 行)


(所影响的行数为 1 行)

删除起的是什么作用?
llh6795 2010-05-27
  • 打赏
  • 举报
回复
谢谢树上的鸟儿,结果出来了,非常感谢
llh6795 2010-05-27
  • 打赏
  • 举报
回复
别的字段不用管,只填入举例的即可
chuifengde 2010-05-27
  • 打赏
  • 举报
回复
这种只有先添加再删除
1楼的语句是根据你举例的表的结果
要是不管别的字段,那你就改一下语句为:
insert FPMX(FPBH,HTBH,WXBH,WXSH,CPSL) select A.FPBH,A.HTBH,B.WXBH,B.WXSH,B.CPSL from FPMX A inner join (select FPBH, WXBH, WXSH,sum(CPSL) CPSL from XDMX
group by FPBH, WXBH, WXSH) B on a.FPBH=b.FPBH

DELETE a from fpmx a where exists(select 1 from xdmx where fpbh=a.fpbh) and wxbh is NULL
llh6795 2010-05-27
  • 打赏
  • 举报
回复
补充:FPMX是一组数据,
而XDMX汇总出来是多行数据
llh6795 2010-05-27
  • 打赏
  • 举报
回复
(所影响的行数为 1 行)
llh6795 2010-05-27
  • 打赏
  • 举报
回复
调试出来只有一行数据
FPBH HTBH WXBH WXSH CPSL
66710 1036 C126 Y1 186.8
Mr_Nice 2010-05-27
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 htl258 的回复:]

引用 9 楼 llh6795 的回复:
谢谢楼上的朋友,不过FMMX中的WXBH、WXSH也是填入的



SQL code
update FPMX set CPSL=B.CPSL,WXBH=B.WXBH, WXSH=B.WXSH
from (select FPBH, WXBH, WXSH,sum(CPSL) CPSL from XDMX
group by FPBH, WXBH,……
[/Quote]


同上...
htl258_Tony 2010-05-27
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 llh6795 的回复:]
谢谢楼上的朋友,不过FMMX中的WXBH、WXSH也是填入的
[/Quote]


update FPMX set CPSL=B.CPSL,WXBH=B.WXBH, WXSH=B.WXSH
from (select FPBH, WXBH, WXSH,sum(CPSL) CPSL from XDMX
group by FPBH, WXBH, WXSH) B
where FPMX.FPBH=B.FPBH AND FPMX.WXBH=B.WXBH AND FPMX.WXSH=B.WXSH
自己加两个字段就好了
llh6795 2010-05-27
  • 打赏
  • 举报
回复
谢谢楼上的朋友,不过FMMX中的WXBH、WXSH也是填入的
llh6795 2010-05-26
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 chuifengde 的回复:]
你确定你的FPMX表只有这FPBH HTBH WXBH WXSH CPSL 五个字段?
[/Quote]

不好意思,为了举例简单,只说了几列,还有其他字段
csmark 2010-05-26
  • 打赏
  • 举报
回复
路过...
chuifengde 2010-05-26
  • 打赏
  • 举报
回复
你确定你的FPMX表只有这FPBH HTBH WXBH WXSH CPSL 五个字段?
subxli 2010-05-26
  • 打赏
  • 举报
回复
郁闷啊 ,机子上没数据库服务, 不然就可以试下写写看。
这个应该蛮简单。
llh6795 2010-05-26
  • 打赏
  • 举报
回复
谢谢楼上的朋友
调试提示
服务器: 消息 213,级别 16,状态 4,行 1
插入错误: 列名或所提供值的数目与表定义不匹配。
chuifengde 2010-05-26
  • 打赏
  • 举报
回复
??
insert FPMX select A.FPBH,A.HTBH,B.WXBH,B.WXSH,B.CPSL from FPMX A inner join (select FPBH, WXBH, WXSH,sum(CPSL) CPSL from XDMX
group by FPBH, WXBH, WXSH) B on a.FPBH=b.FPBH

DELETE a from fpmx a where exists(select 1 from xdmx where fpbh=a.fpbh) and wxbh is NULL
wang427 2010-05-26
  • 打赏
  • 举报
回复
update FPMX set CPSL=B.CPSL
from (select FPBH, WXBH, WXSH,sum(CPSL) CPSL from XDMX
group by FPBH, WXBH, WXSH) B
where FPMX.FPBH=B.FPBH AND FPMX.WXBH=B.WXBH AND FPMX.WXSH=B.WXSH
llh6795 2010-05-26
  • 打赏
  • 举报
回复
郁闷ING
希望有高手指点

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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