Hi:
You requirement to cycle through a process multiple times and only vary a few pieces of the process points to using SAS macro coding techniques. To me. As far as I know, you can't use arrays, per se, with SQL, but you can create numbered macro variables, and within a macro program, you could iteratively cycle through your SQL code and only change your unit_pk value and your service_cat_desc value.
I would start where you are at: you already have a working SAS program. Now you need to learn more about SAS macro processing. The SAS Macro facility is a method that you can use to actually -generate- code -- think of the SAS Macro facility as a big, behind-the-scenes, typewriter, which can type pieces of code or whole programs for you and then send those programs to the regular SAS compile/execute phases. So the Macro facility isn't doing any execution of code -- just resolving macro program invocations and macro variable references in order to generate code.
So, briefly, if you had:
[pre]
** above SQL step;
%let wantpk = 54;
%let wantsvc=Video;
then in the SQL step had:
orig.unit_pk = &wantpk and cb_cntr_service_category.service_cat_desc = "&wantsvc"
[/pre]
what would happen is that the macro facility word scanner would detect the &wantpk reference and would substitute or type the number 54 into the resolved code. Next, the macro word scanner would encounter the macro reference &wantsvc and would type or substitute the value Video into the quoted string (note the need for double quotes in the SQL statement in order for the macro variable reference to resolve).
Once you get a macro variable reference like this working for your program, you are now ready to look into the use of a macro program and a macro %DO loop to iterate through a numbered list of macro variables.
If you have never used the SAS macro facility, then, buckle your seat belt because this is a new SAS ride for you in the SAS park. A good place to start is this paper -- that covers the basics of the Macro facility in 9 steps:
http://www2.sas.com/proceedings/sugi28/056-28.pdf
and this one:
http://www2.sas.com/proceedings/sugi29/243-29.pdf
and this is a nice blog about using %DO loops
http://scott.sherrillmix.com/blog/programmer/sas-macros-letting-sas-do-the-typing/
you'll have to search for more papers by SAS users on macro processing. Here's one that explicitly talks about using PROC SQL to create your macro variables (such as the numbered list you'll need for your task)
http://support.sas.com/resources/papers/proceedings09/200-2009.pdf
Hopefully, this will get you started.
cynthia