如何对 SAS 中多个表中的单个条目求和
How to sum individual entries from multiple tables in SAS
我有:
A 队
Material Accommodation Travel
1 月 8 日 12 日 10 日
2 月 8 日 15 日 30 日
3 月 9 日 12 日 20 日
B 队
Material Accommodation Travel
1 月 4 日 18 日 20 日
2 月 7 日 14 日 20 日
3 月 6 日 12 日 10 日
C 队
Material Accommodation Travel
1 月 5 日 18 日 10 日
2 月 9 日 15 日 30 日
3 月 9 日 12 日 10 日
我想要的:
总和
Material Accommodation Travel
1 月 17 日 48 日 40 日
2 月 24 日 44 日 80 日
3 月 24 日 36 日 40 日
我想对三个表中的每个条目求和。
复制表格的代码:
proc sql;
create table TeamA
(Material num, Accommodation num, Travel num);
insert into TeamA
values(8,12,10)
values(8,15,30)
values(9,12,20);
run;
proc sql;
create table TeamB
(Material num, Accommodation num, Travel num);
insert into TeamB
values(4,18,20)
values(7,14,20)
values(6,12,10);
run;
proc sql;
create table TeamC
(Material num, Accommodation num, Travel num);
insert into TeamC
values(5,18,10)
values(9,15,30)
values(9,12,10);
run;
使用SQLunion all corresponding
语句和sql聚合函数sum()
:
proc sql;
create table TeamA
(month char(3), Material num, Accommodation num, Travel num);
insert into TeamA
values('Jan',8,12,10)
values('Feb',8,15,30)
values('Mar',9,12,20);
run;
proc sql;
create table TeamB
(month char(3), Material num, Accommodation num, Travel num);
insert into TeamB
values('Jan',4,18,20)
values('Feb',7,14,20)
values('Mar',6,12,10);
run;
proc sql;
create table TeamC
(month char(3), Material num, Accommodation num, Travel num);
insert into TeamC
values('Jan',5,18,10)
values('Feb',9,15,30)
values('Mar',9,12,10);
run;
proc sql noprint;
create table allteam as
select month,
sum(material) as material,
sum(accommodation) as accommodation,
sum(travel) as travel
from (
select * from teama
union all corresponding
select * from teamb
union all corresponding
select * from teamc
)
group by month
;
quit;
我有:
A 队
Material Accommodation Travel
1 月 8 日 12 日 10 日
2 月 8 日 15 日 30 日
3 月 9 日 12 日 20 日
B 队
Material Accommodation Travel
1 月 4 日 18 日 20 日
2 月 7 日 14 日 20 日
3 月 6 日 12 日 10 日
C 队
Material Accommodation Travel
1 月 5 日 18 日 10 日
2 月 9 日 15 日 30 日
3 月 9 日 12 日 10 日
我想要的:
总和
Material Accommodation Travel
1 月 17 日 48 日 40 日
2 月 24 日 44 日 80 日
3 月 24 日 36 日 40 日
我想对三个表中的每个条目求和。
复制表格的代码:
proc sql;
create table TeamA
(Material num, Accommodation num, Travel num);
insert into TeamA
values(8,12,10)
values(8,15,30)
values(9,12,20);
run;
proc sql;
create table TeamB
(Material num, Accommodation num, Travel num);
insert into TeamB
values(4,18,20)
values(7,14,20)
values(6,12,10);
run;
proc sql;
create table TeamC
(Material num, Accommodation num, Travel num);
insert into TeamC
values(5,18,10)
values(9,15,30)
values(9,12,10);
run;
使用SQLunion all corresponding
语句和sql聚合函数sum()
:
proc sql;
create table TeamA
(month char(3), Material num, Accommodation num, Travel num);
insert into TeamA
values('Jan',8,12,10)
values('Feb',8,15,30)
values('Mar',9,12,20);
run;
proc sql;
create table TeamB
(month char(3), Material num, Accommodation num, Travel num);
insert into TeamB
values('Jan',4,18,20)
values('Feb',7,14,20)
values('Mar',6,12,10);
run;
proc sql;
create table TeamC
(month char(3), Material num, Accommodation num, Travel num);
insert into TeamC
values('Jan',5,18,10)
values('Feb',9,15,30)
values('Mar',9,12,10);
run;
proc sql noprint;
create table allteam as
select month,
sum(material) as material,
sum(accommodation) as accommodation,
sum(travel) as travel
from (
select * from teama
union all corresponding
select * from teamb
union all corresponding
select * from teamc
)
group by month
;
quit;