100分,两个表如何合并! select 编号,sum(金额) 金额 into 新表 from (select * from 表1union allselect * from 表2) aa group by 编号 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 假设左表为dd,右表为ee,“001”等字段名为“gjz”,“20.00”等字段名为“val”,运行测试平台为SQL Server 2000:select isnull(a.gjz,b.gjz) gjz,isnull(sum(a.val),0)+isnull(sum(b.val),0) valfrom dd afull outer join ee bon a.gjz=b.gjzgroup by a.gjz,b.gjz 楼上:002 未显示结果是001 20.00null 30.00003 100.00004 50.00 select 编号,sum(金额) 金额 from (select * from 表1union allselect * from 表2) aa group by 编号有错吗? 大哥,我这运行正常啊。我是SQL Server 2000开发者版,你呢? 是的用full outer join和union all有什么区别?请教 union ALL在结果中包含所有的行,包括重复行。如果没有指定,则删除重复行。FULL [OUTER] join指定在结果集中包含左表或右表中不满足联接条件的行,并将对应于另一个表的输出列设为 NULL。这是对通常由 INNER JOIN 返回的所有行的补充。 select isnull(a.gjz,b.gjz) gjz,isnull(sum(a.val),0)+isnull(sum(b.val),0) val....注意:不能将第一个isnull运算符去掉,否则会出现如你的运行结果一样,即“002”成为了“NULL” 可用union all就报select * from 表2) aa group by 编号 这一行的 as aa错误 unit all 出错的原因可能是因为你的几个表字段不一致! 我又试了一下Union All方式,结果是正确的,语法为:select gjz,sum(val) val from (select gjz,val from dd union all select gjz,val from ee)agroup by gjz 引用Online Books:UNION 运算符将两个或更多查询的结果组合为单个结果集,该结果集包含联合查询中的所有查询的全部行。这与使用联接组合两个表中的列不同。使用 UNION 组合两个查询的结果集的两个基本规则是: 1、所有查询中的列数和列的顺序必须相同。2、数据类型必须兼容。 海原兄:select isnull(a.gjz,b.gjz) gjz,isnull(sum(a.val),0)+isnull(sum(b.val),0) val是用full outer join 还是union all? 关于游标 索引覆盖是什么意思,这是好现象还是不好的现象呀? 求助,希望高手指点.. 一个奇怪的查询问题 如何用BCP将excel导入到sqlserver,高人帮个忙.谢谢! 将DBF导入SQL时报错,帮我看看问题出在什么地方。谢谢。 利用链接数据库导入其他类型数据库查询的问题 关于一个脚本,急救!!!!! 怎样建立这样的视图----在线等待 一个稍难的SQL数据匹配语句 关于“不能在firehose”方式下启动事务 的问题?!·?(在线等) 难写的select语句:查出每个班级里身高最高的5个学生??
select isnull(a.gjz,b.gjz) gjz,isnull(sum(a.val),0)+isnull(sum(b.val),0) val
from dd a
full outer join ee b
on a.gjz=b.gjz
group by a.gjz,b.gjz
002 未显示
结果是
001 20.00
null 30.00
003 100.00
004 50.00
union all
select * from 表2) aa group by 编号有错吗?
用full outer join和union all有什么区别?请教
在结果中包含所有的行,包括重复行。如果没有指定,则删除重复行。FULL [OUTER] join指定在结果集中包含左表或右表中不满足联接条件的行,并将对应于另一个表的输出列设为 NULL。这是对通常由 INNER JOIN 返回的所有行的补充。
....
注意:不能将第一个isnull运算符去掉,否则会出现如你的运行结果一样,即“002”成为了“NULL”
就报select * from 表2) aa group by 编号 这一行的 as aa错误
select gjz,sum(val) val from (select gjz,val from dd union all select gjz,val from ee)a
group by gjz
将两个或更多查询的结果组合为单个结果集,该结果集包含联合查询中的所有查询的全部行。这与使用联接组合两个表中的列不同。
使用 UNION 组合两个查询的结果集的两个基本规则是:
1、所有查询中的列数和列的顺序必须相同。
2、数据类型必须兼容。
select isnull(a.gjz,b.gjz) gjz,isnull(sum(a.val),0)+isnull(sum(b.val),0) val
是用full outer join 还是union all?