Historienanalysen im Enterprise Guide

Hallo zusammen,

ich habe Historientabellen der Art

Schlüssel, Eigenschaft1, Eigenschaft2, ..., Valid_From, Valid_To

Jeder Datensatz ist also über einen gewissen Zeitraum gültig.

Jetzt suche ich eine Auswertung der Art

Datum 1, #(Ausprägung 1 von Eigenschaft1)
Datum1, ...
Datum1, #(Ausprägung n von Eigenschaft1)
...
Datum n, #(Ausprägung 1 von Eigenschaft1)
Datum n, ...
Datum n, #(Ausprägung n von Eigenschaft1)

wobe # die Anzahl der zum Datum gültigen Datensätze mit der jeweiligen Auspräung der jeweiligen Eigenschaft bezeichnet.

Gibt es im EG eine "fertige" Funktion, die das erledigt?
Wenn ja: Welche?
Wenn nein: Wie kann man das (und ich bin in der SAS-Sprache nicht sehr bewandert) mittels eines Codeblocks erledigen?

Zusatzfragen:

Wie sieht die Auswertung aus, wenn man nicht mit dem kleinsten Valid_From bis zum größten Valid_To (alternativ: das heutige Datum) gehen will, sondern nur einen bestimmten Zeitraum betrachten möchte?
Oder wenn man nur nach einer bestimmten Ausprägung sucht?

Wer kann mir da helfen?

Schönen Gruß

O. Musch

Abfrage

Man kann das vermutlich mit einer Abfrage lösen. Da ich Ihre Daten nicht so genau kenne, hier ein Code, der ein paar Beispieldaten erzeugt, damit ich das erklären kann. Bitte in Enterprise Guide ausführen. Ich nehme an, Sie verwenden Version 4.1 und kennen sich mit dem Abfragewerkzeug aus.

data hist;
   
input key 2. +1 attr1 1. +1 attr2 1. +1 valid_from date9. +1 valid_to date9.;
   
format valid_from valid_to ddmmyyp10.;
datalines;
 1 0 1 01jan2008 03jan2008
 2 0 1 02jan2008 05jan2008
 3 1 2 03jan2008 07jan2008
 4 1 2 04jan2008 09jan2008
 5 1 3 05jan2008 11jan2008
 6 2 3 06jan2008 13jan2008
 7 2 4 07jan2008 15jan2008
 8 2 4 08jan2008 17jan2008
 9 2 5 09jan2008 19jan2008
10 3 5 10jan2008 21jan2008
;

data datum;
   
do datum = '01jan2008'd to '21jan2008'd;
      
do attr1=0 to 3;
         
output;
      
end;
   
end;
   
format datum ddmmyyp10.;
run;
Die Datei HIST enthält Datensätze wie von Ihnen angegeben. Die Datei DATUM enthält alle gewünschten Datumswerte und Ausprägungen der Variablen Attr1.

Gehen Sie nun wie folgt vor:

  • Erstellen eine Abfrage auf die Datei HIST.
  • Fügen Sie die Datei DATUM hinzu.
  • Definieren Sie drei Joins:
    • HIST.attr1 = DATUM.attr1
    • HIST.valid_from <= DATUM.datum
    • HIST.valid_to >= DATUM.datum
  • erstellen Sie ein berechnetes Feld, indem Sie DATUM.attr1 in die Liste der selektierten Felder ziehen und wählen Sie COUNT unter Zusammenfassung
  • wählen Sie "Gruppen automatisch auswählen"
  • führen Sie die Abfrage aus

Wenn Sie das Verfahren auf Ihre eigenen Daten übertragen wollen, müssen Sie nur den Code für die Erzeugung der Datei DATUM verwenden und dort die Variablen und deren Typen anpassen und in den beiden DO-Schleifen den gewünschten Bereich für Datum und Ausprägung einstellen. Anschließend müssen Sie analog die Abfrage erstellen.

Hallo Herr Mangold, vielen

Hallo Herr Mangold,

vielen Dank für die schnelle Antwort.
Ich hatte die Funktionalität "Gruppen automatisch auswählen" überhaupt nicht berücksichtigt und war deswegen mit diesen Abfragen immer gescheitert.

Jetzt klappt alles wie gewünscht.

Schönen Gruß

O. Musch