Hallo zusammen, für eine Verteilung von Daten habe ich die Anforderung das eine Tabelle auf verschiedene Tabellen, deren Anzahl je nach enthaltenen Gruppen variieren kann, aufgeteilt werden muss. Hier habe ich auch einen Code der funktioniert: data WORK.CLASS;
infile datalines dsd truncover;
input Name $9. Group $1.;
datalines;
Alfred A
Alice B
Barbara B
Carol C
Henry C
Paul D
;
run;
%MACRO gruppen(datei1, pool);
PROC SQL NOPRINT;
SELECT DISTINCT &pool INTO :pools SEPARATED BY ' '
FROM &datei1;
QUIT;
%DO i=1 %TO &SQLOBS;
%LET group=%SCAN(&pools, &i);
%PUT &i: *&group*;
proc sql noprint;
select distinct count(*) into :Menge TRIMMED from &datei1 where &pool = "&group"
group by &pool;
quit;
proc sql;
create table &group._&Menge._Ende as select * from &datei1 where &pool = "&group" ;
quit;
%END;
%MEND;
%gruppen(WORK.class, group); nun mein Problem: Wenn die Menge in den einzelnen Gruppen einen bestimmten Wert unterschreitet sollen diese Gruppen automatisch zu einer Tabelle zusammengefasst werden. In den Beispieldaten oben sollten die gruppen A + D zu einer Tabelle zusammengefasst sein und die Gruppen B und C jeweils in einer eigenen Tabelle stehen. Danke für eure Unterstützung! Viele Grüße Bernd
... View more