sql如何在多个表中的数据分类汇总到一个表里
1个回答
展开全部
create proc Mypro
as
begin
declare @t table(个人编号 varchar(10),工资 money,养老保险 money,年金 money,住房公积金 money)
insert into @t(个人编号,工资,养老保险,年金) select * from 表一
insert into @t select * from 表二
insert into @t select * from 表三
delete from @t where
exists(select * from @t where exists(select 个人编号,工资,养老保险,年金 from @t group by 个人编号,工资,养老保险,年金 having Count(*)>1) and 住房公积金 is null)
declare @t1 table(个人编号 varchar(10),工资 money,养老保险 money,年金 money,住房公积金 money)
insert into @t1 select distinct * from @t
select 个人编号,
sum(工资) as工资总和,avg(工资) as工资平均值,
sum(养老保险) as 养老保险总和,avg(养老保险) as 养老保险平均值,
sum(年金) as 年金总和,avg(年金) as 年金平均值,
sum(住房公积金) as 住房公积金总和,avg(住房公积金) as 住房公积金平均值
from @t1 group by 个人编号
end
--存储过程直接查询出你想要的数据,因为不知道你要总汇总和还是总汇平均值,你自己改下
--然后执行 insert into 表四 exec Mypro 插入你的表四吧
as
begin
declare @t table(个人编号 varchar(10),工资 money,养老保险 money,年金 money,住房公积金 money)
insert into @t(个人编号,工资,养老保险,年金) select * from 表一
insert into @t select * from 表二
insert into @t select * from 表三
delete from @t where
exists(select * from @t where exists(select 个人编号,工资,养老保险,年金 from @t group by 个人编号,工资,养老保险,年金 having Count(*)>1) and 住房公积金 is null)
declare @t1 table(个人编号 varchar(10),工资 money,养老保险 money,年金 money,住房公积金 money)
insert into @t1 select distinct * from @t
select 个人编号,
sum(工资) as工资总和,avg(工资) as工资平均值,
sum(养老保险) as 养老保险总和,avg(养老保险) as 养老保险平均值,
sum(年金) as 年金总和,avg(年金) as 年金平均值,
sum(住房公积金) as 住房公积金总和,avg(住房公积金) as 住房公积金平均值
from @t1 group by 个人编号
end
--存储过程直接查询出你想要的数据,因为不知道你要总汇总和还是总汇平均值,你自己改下
--然后执行 insert into 表四 exec Mypro 插入你的表四吧
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询