当前位置: 首页 > 图文教程 > 数据库 > 数据库技巧 > 一个查询的SQL语句请教,希望能够用一条SQL语句得到结果

数据库技巧
SQL中代替Like语句的另一种写法
Sql Server下数据库链接的使用方法
如何取得一个表的所有字段名用逗号分割
使用SQL Mail收发和自动处理邮件中的扩展存储过程简介
MySQL中的mysqldump命令使用详解
SQL 查询语句积累
SQL server 2005的表分区
关于ADOX的相关知识
如何让SQL运行得更快
ACCESS库转SQLSERVER数据库的注意事项
数据库设计技巧[转]
iwms access与sql版的安装与转换
[转载]让SQL运行得更快
[数据库] 通用分页存储过程
Access数据库升级为SQL数据库的注意事项和方法
Win2003系统安装SQL Sever2000后1433端口未开放的解释
SQL SERVER 与ACCESS、EXCEL的数据转换
Access转MS SqlServer的注意事项
数据库的设计方法、规范与技巧
数据库设计技巧奉送了

数据库技巧 中的 一个查询的SQL语句请教,希望能够用一条SQL语句得到结果


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 55 ::
收藏到网摘: n/a

各位老大:
我有一个查询的SQL语句请教,希望能够用一条SQL语句得到结果,问题如下:
表X:
A B C D
------------------
北京 广州 1000 10
北京 深圳 1200 20
北京 上海 500 30
北京 天津 300 40
北京 河南 800 20

表Y:
A B
----------
北京 深圳
北京 上海

表Z:
A B C D
------------------
北京 广州 200 10
北京 上海 -100 -10
北京 四川 800 50
目的:从表X中去除表Y中关键字相同的数据,再加上表Z中的数据,关键字相同的要累计(A,B为关键字)
得到如下结果:
A B C D
------------------
北京 广州 1200 20
北京 上海 400 20
北京 河南 800 20
北京 四川 800 50
复制代码 代码如下:

select a,b,sum(c) as c,sum(d) as d from
(select * from x union all select * from z ) t
where not exits (select 1 from y where y.a=t.a and y.b=t.b)
group by a,b