I'm trying to write an iterative script in sas that would see assign an id to a customer based on whether they've met conditions in my lookup table. Normally, I would accomplish this with a sql join, but I need a procedural script that would see whether they've met the conditions that exist in the lookup, then assign them that id. Some attributes are not required or available, so a sql join would not work, since the join would require that all conditions be met. See the example, below:
customers table
customer attr1 attr2 attr3
jerry a r g
tom q e h
cindy c f j
id_lookup table
id attr1 attr2 attr3
1 a (null) g
2 (null) e h
3 c f (null)
final output
customer id
jerry 1
tom 2
cindy 3
Note that jerry had a match on attr1 and attr3, so met the conditions, thus was assigned 1. The script moves on to the next customer to assign an id procedurally, starting at 1 and moving on in ascending order. in sql, I would write
select a.customer
, b.id
from customers a
join id_lookup b
on ( a.attr1 = b.attr1
and a.attr2 = b.attr2
and a.attr3 = b.attr2 )
However, some attributes are not available and since a customer might match many ids, may not be assigned the right once, since the customer should be assigned the id with the lowest value that they qualify for.
Is there a script in sas that can accomplish this?
... View more