'How to sum individual entries from multiple tables in SAS

What I have:

Team A

Material Accommodation Travel

Jan 8 12 10

Feb 8 15 30

Mar 9 12 20

Team B

Material Accommodation Travel

Jan 4 18 20

Feb 7 14 20

Mar 6 12 10

Team C

Material Accommodation Travel

Jan 5 18 10

Feb 9 15 30

Mar 9 12 10

What I want:

Sum

Material Accommodation Travel

Jan 17 48 40

Feb 24 44 80

Mar 24 36 40

I want to sum each entry across the three tables.

Code to reproduce tables:

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;


Solution 1:[1]

Use SQL union all corresponding statement and sql aggregate function 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;

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 whymath