第一次做网站的后台的项目,在做的过程中遇到了很多的问题,首先就是有一个函数要进行多张表的查询,然后再进行对其中的列进行求和运算
但是有一个问题就是在其中一张表上的数据比较多,而且这三张表的字段并不相同,所以首先分别对这三张表进行处理,把处理的结果放入三张临
时表里面 这里记录一下创建临时表的方法:
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 进行分组