Hier ist die Definition von ein Macro von mir, der den Syntax von Macro Tabellen erstellén sehr vereinfacht. %macro ut_hash_define( lookuptable = /* in: Name der Lookuptabelle (mit Libname) */, lookup_where = /* in: Optional Where-Bedingung begrenzt die Sätze die in die Hash-Tabelle geladen werden */, hashobjektname = /* in: Optional - Name des Hash-Objektes- needed if the same lookup table is used more than once*/, keys = /* in: Liste der Schluesselfelder */, datacols = /* in: Liste der Ausgabefelder */, multidata = N /* in: Y/N : Duplikaten werden alle beladen, Default =N */, est_rowcount = /* in: Geschätze Anzahl Zeilen die in die Hashtabelle geladen wird Sollte leer gelassen werden, wenn &lookuptabelle eine Tabelle einfach geladen wird Angeben wenn a) &lookup_where benutzt wird, oder b) &lookuptable ein View ist, oder c) &lookuptable kein SAS Tabelle, bzw SAS kann die Anzahl Zeilen mit NLOBS nicht abfragen. Wenn Trotzdem leer aufgerufen wird, wird 100.000 angenommen) */ ); Beispiel Aufruf: data ok not_ok(keep=country_cd);set data_with_country; %ut_hash_define( lookuptable = dimen.countries , lookup_where = effective_dttm lt &rundate. le '31dec9999'd, , keys = country_cd , datacols = long_desc capital president ruling_party gov_form,, multidata = N /* in: Y/N : Duplikaten werden alle beladen, Default =N */ ) rc_find = countries.find();if rc_find ne 0 then output ok;else do; put 'Country ' country_cd ' not found in lookup table dimen.countries '; output not_ok; end; run ; Are you interested in this macro? RegardsDave Prinsloo
... View more