您的位置:首页 > 数据库

SQL union,union all,sql临时表

2016-06-09 15:38 405 查看
    第一次做网站的后台的项目,在做的过程中遇到了很多的问题,首先就是有一个函数要进行多张表的查询,然后再进行对其中的列进行求和运算

但是有一个问题就是在其中一张表上的数据比较多,而且这三张表的字段并不相同,所以首先分别对这三张表进行处理,把处理的结果放入三张临

时表里面 这里记录一下创建临时表的方法:

       select * into #临时表名 from 你的表;    select * into ##临时表名 from 你的表;  

 或者:create table #临时表名(字段1 约束条件)    create
table ##临时表名(字段1 约束条件....)    

PS:以上的#代表局部临时表,##代表全局临时表

 我用的是创建列名不确定的临时表,第一种方法,创建的三张表比如命名为 f1,f2,f3,同时在创建临时表的时候我为相应的列添加同样的别名,这样在使用

union连接的时候就不用考虑字段不同了,

   给表格中的列添加别名:用 as 语句

但是在创建临时表的过程中出现了一个问题,就是在创建第二个临时表的时候它老是在select下面提示应该为ID ,AS 什么的,后来添加了as作为另一个临时表的、

别名,才停止这个错误

然后是通过union将三张临时表 合并在一起,并不像join连接到一块

select 

-- last_table.rectime,

-- SUM (last_table.power) 

-- from (

-- select 

-- #firetempoary.rectime, 

-- #firetempoary.power 

-- from #firetempoary

-- union all

-- select 

-- #othertemporary.rectime,

-- #othertemporary.power 

-- from #othertemporary

-- union all

-- select 

-- #interRegional.rectime,

-- #interRegional.power 

-- from #interRegional

-- ) as last_table

-- group by last_table.rectime

对了这个也要加一个as别名

然后同时通过sum函数求和通过group by 进行分组
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  sql unoin group by