Its a LASR Table, but the real root of the data are from a DBMS. By the way. With regards to your Maxim 3. I want to take jus the last quarter if that quarter occurs more then once in a type. How can I achieve that?
So something converts the DBMS data to a LASR table. This is the process that needs to be looked at.
Do you have a direct connection to the DBMS via SAS/ACCESS, or do you read an unload from the DB into SAS?
To retrieve the last entry for a quarter, sort by type, quarter and an optional item (e.g. date), then do
data compressed / view=compressed;
set have;
by type quarter;
if last.quarter;
run;
Since the view will be executed while the data is processed, it won't eat unnecessary disk space.
data have; infile datalines truncover; input type $ quarter :yymmn6. phase $; format quarter yymmn6.; datalines; K-11 202001 1 K-11 202101 2 K-11 202003 K-12 202101 3 K-12 202102 K-12 202002 1 K-13 202002 2 K-13 202103 3 K-13 202104 2 ; proc transpose data=have out=want ; by type; var phase; id quarter; idlabel quarter; run;
You must have data like this :
K-11 202001 1 K-11 202101 2
K-11 202101 22 K-11 202003 K-12 202101 3 K-12 202102 K-12 202002 1 K-13 202002 2 K-13 202103 3 K-13 202104 2
You need figure out what output you want to see for this data.
Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!
Check out this tutorial series to learn how to build your own steps in SAS Studio.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.