2016-09-04 2 views
0

der Eingang I istdruckt Gesamtgehalt aller Mitarbeiter vor jedem Mitarbeiter Daten

empid salary 
10 1000 
20 2000 
30 3000 
40 5000 

die gewünschte Ausgabe in Datastag 9.1

empid salary totalsal 
10  1000  11000 
20  2000  11000 
30  3000  11000 
40  5000  11000 

die Lösung I gefunden unten in der Abbildung dargestellt ist. Meine Frage ist, gibt es eine einfache Methode, um dieses gewünschte Ergebnis zu erreichen, da ich an keine denken konnte. Vielen Dank für die Zeit dieses

Solution

Antwort

0

Dies ist eine typische Gabel verbinden Beispiel zu lesen nehmen. Sie verzweigen die Daten, um die Aggregation zu erhalten und sie an die ursprünglichen Daten anzufügen. Dies ist auch die Art, wie es in SQL gemacht wird (mit einem Subselect). Eine Alternative wäre ein Transformator mit einer Schleife. Sie fragen nach einer einfachen Methode - also was ist "einfach"? Ein Transformator wäre nur eine einzelne Stufe, während Sie mehr benötigen, aber auf der anderen Seite ist dies vielleicht klarer und daher einfacher.

Eine kurze Erklärung, wie dies mit einer Schleife in einer Transformatorstufe gemacht werden könnte.

  1. Verwenden SaveInputRecord() zum Speichern der Daten einer Gruppe
  2. Aggregate das Gehalt (für die Gruppe)
  3. Abrufen der gespeicherten Zeilen mit GetSavedInputRecord(), wenn LastRowInGroup() wahr ist

Es wäre sogar möglich ohne die Gruppierungskram über die gesamten Daten zu gehen.

Verwandte Themen