106.SET | PROC SORT | FIRST. | LAST. STATEMENTS

          SET | PROC SORT | FIRST. | LAST. STATEMENTS 


Data Work.Emps;

  Set Prog2.Empsals;

Run;

Proc Print;

Run;


OUTPUT:

Obs EmpID Salary Div
1 E00004 42000 HUMRES
2 E00009 34000 FINACE
3 E00011 27000 FLTOPS
4 E00036 20000 FINACE
5 E00037 19000 FINACE
6 E00048 19000 FLTOPS
7 E00077 27000 APTOPS
8 E00097 20000 APTOPS
9 E00107 31000 FINACE
10 E00123 20000 APTOPS
11 E00155 27000 APTOPS
12 E00171 44000 SALES
13 E00188 37000 HUMRES
14 E00196 43000 APTOPS
15 E00210 31000 APTOPS
16 E00222 250000 SALES
17 E00236 41000 APTOPS
18 E00239 42000 FLTOPS
19 E00259 32000 APTOPS
20 E00260 39000 APTOPS
21 E00262 36000 FLTOPS
22 E00272 22000 FINACE
23 E00290 37000 FINACE
24 E00302 18000 HUMRES
25 E00333 36000 APTOPS
26 E00367 33000 FLTOPS
27 E00372 36000 HUMRES
28 E00379 25000 APTOPS
29 E00388 25000 APTOPS
30 E00402 28000 FLTOPS
31 E00407 61000 FLTOPS
32 E00421 31000 HUMRES
33 E00424 17000 HUMRES
34 E00427 27000 APTOPS
35 E00440 17000 APTOPS
36 E00454 45000 FLTOPS
37 E00463 39000 SALES
38 E00465 27000 FLTOPS
39 E00470 40000 SALES


Proc Sort Data=Prog2.Empsals Out=Salsort;

  By Div;

Run;

Proc Print;

Run;


OUTPUT:

Obs EmpID Salary Div
1 E00077 27000 APTOPS
2 E00097 20000 APTOPS
3 E00123 20000 APTOPS
4 E00155 27000 APTOPS
5 E00196 43000 APTOPS
6 E00210 31000 APTOPS
7 E00236 41000 APTOPS
8 E00259 32000 APTOPS
9 E00260 39000 APTOPS
10 E00333 36000 APTOPS
11 E00379 25000 APTOPS
12 E00388 25000 APTOPS
13 E00427 27000 APTOPS
14 E00440 17000 APTOPS
15 E00009 34000 FINACE
16 E00036 20000 FINACE
17 E00037 19000 FINACE
18 E00107 31000 FINACE
19 E00272 22000 FINACE
20 E00290 37000 FINACE
21 E00011 27000 FLTOPS
22 E00048 19000 FLTOPS
23 E00239 42000 FLTOPS
24 E00262 36000 FLTOPS
25 E00367 33000 FLTOPS
26 E00402 28000 FLTOPS
27 E00407 61000 FLTOPS
28 E00454 45000 FLTOPS
29 E00465 27000 FLTOPS
30 E00004 42000 HUMRES
31 E00188 37000 HUMRES
32 E00302 18000 HUMRES
33 E00372 36000 HUMRES
34 E00421 31000 HUMRES
35 E00424 17000 HUMRES
36 E00171 44000 SALES
37 E00222 250000 SALES
38 E00463 39000 SALES
39 E00470 40000 SALES


Data Work.Divsals;

  Set Work.Salsort;

  By Div;

  If First.Div Then Divsal=0;

  Divsal+Salary;

Run;

Proc Print;

Run;


OUTPUT:

Obs EmpID Salary Div Divsal
1 E00077 27000 APTOPS 27000
2 E00097 20000 APTOPS 47000
3 E00123 20000 APTOPS 67000
4 E00155 27000 APTOPS 94000
5 E00196 43000 APTOPS 137000
6 E00210 31000 APTOPS 168000
7 E00236 41000 APTOPS 209000
8 E00259 32000 APTOPS 241000
9 E00260 39000 APTOPS 280000
10 E00333 36000 APTOPS 316000
11 E00379 25000 APTOPS 341000
12 E00388 25000 APTOPS 366000
13 E00427 27000 APTOPS 393000
14 E00440 17000 APTOPS 410000
15 E00009 34000 FINACE 34000
16 E00036 20000 FINACE 54000
17 E00037 19000 FINACE 73000
18 E00107 31000 FINACE 104000
19 E00272 22000 FINACE 126000
20 E00290 37000 FINACE 163000
21 E00011 27000 FLTOPS 27000
22 E00048 19000 FLTOPS 46000
23 E00239 42000 FLTOPS 88000
24 E00262 36000 FLTOPS 124000
25 E00367 33000 FLTOPS 157000
26 E00402 28000 FLTOPS 185000
27 E00407 61000 FLTOPS 246000
28 E00454 45000 FLTOPS 291000
29 E00465 27000 FLTOPS 318000
30 E00004 42000 HUMRES 42000
31 E00188 37000 HUMRES 79000
32 E00302 18000 HUMRES 97000
33 E00372 36000 HUMRES 133000
34 E00421 31000 HUMRES 164000
35 E00424 17000 HUMRES 181000
36 E00171 44000 SALES 44000
37 E00222 250000 SALES 294000
38 E00463 39000 SALES 333000
39 E00470 40000 SALES 373000


Data Work.Divsals01;

  Set Work.Salsort;

  By Div;

  If First.Div Then Divsal=0;

  Divsal+Salary;

  If Last.Div;

Run;

Proc Print Noobs;

Run;


OUTPUT:

EmpID Salary Div Divsal
E00440 17000 APTOPS 410000
E00290 37000 FINACE 163000
E00465 27000 FLTOPS 318000
E00424 17000 HUMRES 181000
E00470 40000 SALES 373000



TRY AND COMMENT YOUR CODE...

-->PLEASE READ AND COMMENT THE BLOG...

--PLEASE FOLLOW THE BLOG FOR MORE UPDATES...

--FOLLOW US IN FACEBOOK SASALL4YOU AND JOIN ...

--JOIN US IN FACEBOOK AND TELEGRAM  CHANNEL FOR MORE UPDATES

   CLICK HERE : https://t.me/SasAll4You

Comments