SAS Base Programming study materials
SAS Base Programming study resources

SAS Base Programming case studies

SAS Base Programming · Put your knowledge to work in context.

The SAS Certified Specialist: Base Programming Using SAS 9.4 is a SAS Global Certification credential for programmers who want to show they have mastered foundational Base SAS skills. According to SAS, earning it demonstrates that you can read and create data files, create basic detail and summary reports using Base SAS procedures, manipulate and transform data, and identify and correct syntax and programming logic errors. The SAS Base Programming case studies are 5 cases and about 3,406 words.

1

The merge that finished with no ERROR but doubled the paid amount

WORK.ELIG holds 432,000 rows - one row per member per month (36,000 members x 12 months) - sorted by member id, with provider name declared as length 12. WORK.CLAIMS holds 310,000 rows, up to nine per member, also sorted by member id, with provider name declared as length 30.

743 words, about 4 min
2

Running balance that resets, survives blanks, and produces an ending balance

WORK.TRANSACT has 120,000 rows sorted by account id and txn date; WORK.OPENING has exactly one row per account with the opening balance. The analyst writes: data run; set transact; by account id; retain balance; balance = balance + amount; if balance lt 0 then od=1; run; Every balance is missing.

694 words, about 3 min
3

Five North sections in one report

A monthly sales PDF must show one section per region with a subtotal per region. WORK.SALES has 22,400 rows; the region column was keyed by three different people, so it contains 'North', 'north', 'NORTH' and 'North ' (trailing blank).

557 words, about 3 min
4

The load that stopped at observation 4,502 and still reported success

A nightly job loads a 2.3-million-row pipe-delimited extract. Step 3 is: data work.load; infile raw dlm=' ' dsd truncover; input id $12.

678 words, about 3 min
5

PROC IMPORT guessed the types from the first 20 rows

A vendor sends a 60,000-row pipe-delimited file with a header row. The developer writes: proc import datafile='stores.txt' out=work.stores dbms=dlm replace; delimiter=' '; getnames=yes; run; GUESSINGROWS is left at its default.

734 words, about 4 min