Sie können Präfixoperatoren verwenden, um Berechnungen direkt mit den Werten von Feldern durchzuführen.
Hinweis: Falls Sie eine Spalte oder einen ACROSS-Titel mit einer AS-Phrase verändern, wird der Präfixoperator automatisch zum Titel. Ohne eine AS-Phrase wird der Spaltentitel mit dem Präfixoperator und entweder dem Feldnamen oder dem TITLE-Attribut in der Masterdatei (falls vorhanden) erstellt:
Eine Liste von Präfixoperatoren und deren Funktionen finden Sie unter Funktionen, die Sie mit Präfixoperatoren ausführen können.
Vorgehensweise: Referenz: |
In diesem Kapitel werden die grundlegende Syntax und Hinweise für die Verwendung von Präfixoperatoren beschrieben.
Jeder Präfixoperator wird auf ein einzelnes Feld angewendet, und wirkt sich nur auf dieses Feld aus.
{SUM|COUNT} prefix.fieldname AS 'coltitle'
{PRINT|COMPUTE} RNK.byfield
Hierbei gilt:
Die folgende Tabelle listet Präfixoperatoren auf und beschreibt die jeweiligen Funktionen.
Präfix |
Funktion |
---|---|
ASQ. |
Berechnet die durchschnittliche Quadratsumme für die Standardabweichung in statistischen Analysen. |
AVE. |
Berechnet den durchschnittlichen Wert des Feldes. |
CNT. |
Zählt die Vorkommnisse des Feldes. Der Datentyp des Ergebnisses ist immer Ganze Zahl. |
CNT.DST. |
Zählt die verschiedenen Werte innerhalb eines Feldes. |
CT. |
Erzeugt eine kumulative Gesamtsumme des angegebenen Feldes. Dieser Operator trifft nur zu, wenn er in Zwischenfußzeilen verwendet wird. Weitere Informationen finden Sie unter Kopfzeilen, Fußzeilen, Titel und Labels verwenden. |
DST. |
Bestimmt die Gesamtanzahl der eindeutigen Werte in nur einem Durchlauf einer Datenquelle. |
FST. |
Erzeugt die erste physische Instanz des Feldes. Kann mit numerischen Feldern oder Textfeldern verwendet werden. |
LST. |
Erzeugt die letzte physische Instanz des Feldes. Kann mit numerischen Feldern oder Textfeldern verwendet werden. |
MAX. |
Erzeugt den Maximalwert des Feldes. |
MDE. |
Berechnet den Modus der Feldwerte. |
MDN. |
Berechnet den Mittelwert der Feldwerte. |
MIN. |
Erzeugt den Minimalwert des Feldes. |
PCT. |
Berechnet den Prozentsatz eines Feldes basierend auf den Gesamtwerten des Feldes. Der PCT-Operator kann für Detail- sowie Summenfelder verwendet werden. |
PCT.CNT. |
Berechnet den Prozentsatz eines Feldes basierend auf der Anzahl der gefundenen Instanzen. Das Format des Ergebnisses ist immer F6.2 und kann nicht neu formatiert werden. |
RNK. |
Stuft die Instanzen eines BY-Sortierfeldes in der Anfrage ein. Kann in PRINT-Befehlen, COMPUTE-Befehlen und IF- oder WHERE TOTAL-Tests verwendet werden. |
RPCT. |
Berechnet den Prozentsatz eines Feldes basierend auf den Gesamtwerten des Feldes in einer Zeile. |
ST. |
Erzeugt einen Zwischensummenwert des angegebenen Feldes an einem Sortierumbruch im Report. Dieser Operator trifft nur zu, wenn er in Zwischenfußzeilen verwendet wird. Weitere Informationen finden Sie unter Kopfzeilen, Fußzeilen, Titel und Labels verwenden. |
SUM. |
Summiert die Feldwerte. |
TOT. |
Summiert die Feldwerte für die Verwendung in einer Kopfzeile (einschließlich Fußzeilen, Zwischenkopfzeilen und Zwischenfußzeilen). |
Das Präfix AVE. berechnet den Durchschnittswert eines bestimmten Feldes. Die Berechnung wird auf der niedrigsten Sortierebene des Anzeigebefehls durchgeführt. Wird berechnet als die Summe der Feldwerte in einer Sortiergruppe geteilt durch die Anzahl der Datensätze in dieser Sortiergruppe. Wenn die Anfrage keine Sortierphrase enthält, berechnet AVE. den Durchschnitt für den gesamten Report.
Diese Anfrage berechnet die durchschnittliche Anzahl von Fortbildungsstunden in jeder Abteilung.
TABLE FILE EMPLOYEE SUM AVE.ED_HRS BY DEPARTMENT END
Nachfolgend sehen Sie die Ausgabe der Anfrage:
AVE DEPARTMENT ED_HRS ---------- ------ MIS 38.50 PRODUCTION 20.00
Das Präfix ASQ. berechnet die durchschnittliche Summe von Quadraten, was eine Komponente der Normalabweichung bei der statistischen Analyse ist (wird in der folgenden Abbildung als eine Formel angezeigt).
Wenn das Feldformat ganzzahlig ist und Sie eine große Zahlengruppe erhalten, kann es vorkommen, dass das ASQ.-Ergebnis aufgrund von Feldüberlauf negativ ist.
Diese Anfrage berechnet die Summe und die Summe der quadrierten Felder für das Feld DELIVER_AMT.
TABLE FILE SALES SUM DELIVER_AMT AND ASQ.DELIVER_AMT BY CITY END
Nachfolgend sehen Sie die Ausgabe der Anfrage:
ASQ CITY DELIVER_AMT DELIVER_AMT ---- ----------- ----------- NEW YORK 300 980 NEWARK 60 900 STAMFORD 430 3637 UNIONDALE 80 1600
Die Präfixe MAX. und MIN. erzeugen innerhalb einer Sortiergruppe die Maximal- bzw. Minimalwerte. Wenn die Anfrage keine Sortierphrase enthält, erzeugen MAX. und MIN. die Maximal- und Minimalwerte für den gesamten Report.
Diese Reportanfrage berechnet die Maximal- und Minimalwerte von SALARY.
TABLE FILE EMPLOYEE SUM MAX.SALARY AND MIN.SALARY END
Nachfolgend sehen Sie die Ausgabe der Anfrage:
MAX MIN SALARY SALARY ------ ------ $29,700.00 $8,650.00
Sie können den MDN verwenden. (Median) und MDE. (Modus) Präfixoperatoren, die in Verbindung mit einem Aggregation-Anzeigebefehl (SUM, WRITE) und einem numerischen oder Smart-Datumsfeld den statistischen Mittelwert und Modus der Feldwerte berechnen.
Diese Berechnungen werden in DEFINE-, WHERE-, IF-, und Zusammenfassungsbefehlen bzw. Ausdrücken nicht unterstützt. Bei der Verwendung in einer Mehrfachverbanfrage müssen sie auf der untersten Ebene der Aggregation verwendet werden.
Der Mittelwert ist die mathematische Mitte (50 Prozent). Bei einer geraden Anzahl von Werten, ist der Mittelwert der Durchschnitt der beiden mittlweren Werte. Der Modus ist der Wert, der in Satz von Werten am häufigsten vor kommt. Wenn kein Wert häufiger als die anderen auftritt, MDE. Gibt den niedrigsten Wert zurück.
Die folgende Anfrage an die EMPLOYEE-Datenquelle zeigt die aktuellen Gehältern und berechnet den (mittleren) Durchschnitt, Mittelwert und Modus innerhalb der jeweiligen Abteilung.
TABLE FILE EMPLOYEE SUM CURR_SAL AS 'INDIVIDUAL,SALARIES' AVE.CURR_SAL WITHIN DEPARTMENT AS 'DEPARTMENT,AVERAGE' MDN.CURR_SAL WITHIN DEPARTMENT AS 'DEPARTMENT,MEDIAN' MDE.CURR_SAL WITHIN DEPARTMENT AS 'DEPARTMENT,MODE' BY DEPARTMENT BY CURR_SAL NOPRINT BY LAST_NAME NOPRINT BY FIRST_NAME NOPRINT ON TABLE SET PAGE NOPAGE END
Beide Abteilungen verfügen über eine gerade Anzahl von Mitarbeitern. Für die Abteilung MIS sind die beiden mittleren Werte dieselben, so dass dieser Wert ($18.480,00 ) sowohl der Mittelwert wie auch der der Modus ist. Für die Abteilung PRODUCTION ist der Mittelwert der Durchschnitt der beiden mittleren Werte ($16.100,00 und $21.120,00). Da es keine doppelten Werte gibt, ist der Modus der niedrigste Wert ($9.500,00).
Für jeden individuellen Wert in einer Spalte berechnet PCT., welchen Prozentanteil dieses Feld am gesamten Spaltenwert hat. Sie können steuern, wie Werte in der Spalte verteilt werden, indem Sie die Spalte mit der BY-Phrase sortieren. Die neue Spalte mit Prozentanteilen hat dasselbe Format wie das ursprüngliche Feld.
Sie können auch Prozentanteile für Zeilenwerte bestimmen. Der RPCT.-Operator berechnet für jeden individuellen Wert in einer Zeile, die mit der ACROSS-Phrase sortiert wurde, welchen Prozentanteil er an der Gesamtsumme der Zeile hat. Die Prozentwerte haben dasselbe Format wie das ursprüngliche Feld.
Geben Sie die folgende Anfrage aus, um den Anteil jedes Angestellten an den Fortbildungsstunden zu berechnen:
TABLE FILE EMPLOYEE SUM ED_HRS PCT.ED_HRS BY LAST_NAME ON TABLE COLUMN-TOTAL END
Die Ausgabe ist:
PCT LAST_NAME ED_HRS ED_HRS --------- ------ ------ BANNING .00 .00 BLACKWOOD 75.00 21.37 CROSS 45.00 12.82 GREENSPAN 25.00 7.12 IRVING 30.00 8.55 JONES 50.00 14.25 MCCOY .00 .00 MCKNIGHT 50.00 14.25 ROMANS 5.00 1.42 SMITH 46.00 13.11 STEVENS 25.00 7.12 TOTAL 351.00 100.00
Da PCT. und RPCT. dasselbe Format annehmen wie das Feld, kann es sein, dass die Gesamtsumme der Spalte nicht immer genau 100 beträgt, aufgrund von Gleitkomma-Arithmetik.
Die folgende Anfrage berechnet die Gesamtstückzahl für jedes Produkt (UNIT_SOLD-Spalte) und den Prozentanteil dieser Summe an allen verkauften Produkten (RPCT.UNIT_SOLD-Spalte) in jeder Stadt.
TABLE FILE SALES SUM UNIT_SOLD RPCT.UNIT_SOLD ROW-TOTAL BY PROD_CODE ACROSS CITY WHERE CITY EQ 'NEW YORK' OR 'STAMFORD' END
Die Ausgabe ist:
Da UNIT_SOLD ein Ganze Zahl-Format hat, haben die Spalten, die durch RPCT. erzeugt werden, auch ein Ganze Zahl-Format (I). Es kann daher vorkommen, dass einzelne Prozentanteile abgeschnitten werden und die Summe weniger als 100% ist. Definieren Sie das Feld mit einem Format neu, das Dezimalstellen anzeigt (D, F), wenn Sie eine präzise Summe benötigen.
Wenn in einer Datei Vorkommnisse gezählt werden, bestimmt die gemeinsame Notwendigkeit für die Erstellung von Reports den relativen Anteil der Anzahl in jeder Zeile an der Gesamtzahl der Instanzen. Sie können dies nur für Spalten durchführen und zwar mit der folgenden Syntax:
PCT.CNT.fieldname
Das Format ist ein Dezimalwert mit sechs Stellen und zwei Dezimalstellen (F6.2).
Diese Anfrage veranschaulicht den relativen Prozentanteil der Werte im EMP_ID-Feld für jede Abteilung.
TABLE FILE EMPLOYEE SUM PCT.CNT.EMP_ID BY DEPARTMENT END
Die Ausgabe ist:
PCT.CNT | |
DEPARTMENT ---------- | EMP_ID ------ |
MIS | 50.00 |
PRODUCTION | 50.00 |
Vorgehensweise: Referenz: |
Der eindeutige Präfixoperator (DST.) kann verwendet werden, um eindeutige Werte eines beliebigen Datenquellenfeldes zu aggregieren und aufzulisten. Er ähnelt in seiner Funktionsweise den Spaltenfunktionen SQL COUNT, SUM und AVG(DISTINCT col) und ermöglicht es Ihnen, die Gesamtanzahl der eindeutigen Werte in nur einem Durchlauf einer Datenquelle zu bestimmen.
Der DST.-Operator kann verwendet werden mit den Befehlen SUM, PRINT oder COUNT, und auch in Verbindung mit den aggregierenden Präfixoperatoren SUM., CNT. und AVE. Es werden in TABLE- und TABLEF-Anfragen mehrere DST.-Operatoren unterstützt. Sie werden unterstützt in Anfragen, die die Phrasen BY, ACROSS und FOR verwenden.
Beachten Sie, dass Sie in einer Anfrage, in der der Befehl PRINT und mehrere DST-Operatoren verwendet werden, den Befehl SET PRINTDST=NEW ausgeben sollten. Genaueres finden Sie im Handbuch Reportanwendungen entwickeln .
command DST.fieldname
oder
SUM [operator].DST.fieldname
Hierbei gilt:
Die Prozedur, mit der Sie die Anzahl eindeutiger ED_HRS-Werte abfragen, ist entweder:
TABLE FILE EMPLOYEE SUM CNT.DST.ED_HRS END
oder
TABLE FILE EMPLOYEE COUNT DST.ED_HRS END
Die Ausgabe ist:
COUNT DISTINCT ED_HRS -------- 9
Beachten Sie, dass beide Angestellten mit dem Nachnamen SMITH mitgezählt werden, jedoch die zweiten Datensätze für die Werte 50.00, 25.00 und .0 ausgeschlossen werden, was zu neun eindeutigen ED_HRS-Werten führt.
Die folgende Anfrage mit der GGSALES-Datenquelle zählt die Gesamtanzahl der Datensätze nach Region, dann die Anzahl der Datensätze, individuelle Kategorien und individuelle Produkte nach Region und Staat. Die Operatoren DST oder CNT.DST können nur mit dem letzten Anzeigebefehl verwendet werden:
TABLE FILE GGSALES COUNT CATEGORY AS 'TOTAL,COUNT' BY REGION SUM CNT.CATEGORY AS 'STATE,COUNT' CNT.DST.CATEGORY CNT.DST.PRODUCT BY REGION BY ST END
Die Ausgabe ist:
COUNT COUNT TOTAL STATE DISTINCT DISTINCT Region COUNT State COUNT CATEGORY PRODUCT ------ ----- ----- ----- -------- -------- Midwest 1085 IL 362 3 9 MO 361 3 9 TX 362 3 9 Northeast 1084 CT 361 3 10 MA 360 3 10 NY 363 3 10 Southeast 1082 FL 361 3 10 GA 361 3 10 TN 360 3 10 West 1080 CA 721 3 10 WA 359 3 10
(FOC950) INVALID REFORMAT OPTION WITH COUNT OR CNT.
(FOC1853) CNT/SUM/AVE.DST CAN ONLY BE USED WITH AGGREGATION VERBS
(FOC1854) THE DST OPERATOR IS ONLY SUPPORTED IN TABLE REQUESTS
(FOC1862) REFORMAT DST.FIELD IS NOT SUPPORTED WITH PRINT
(FOC1864) THE DST OPERATOR IS NOT SUPPORTED WITH NOSPLIT
(FOC1867) DST OPERATOR MUST BE AT THE LOWEST LEVEL OF AGGREGATION
FST. ist ein Präfix, das den ersten abgerufenen Datensatz anzeigt, der für ein gegebenes Feld ausgewählt ist. LST. zeigt den letzten abgerufenen Datensatz an, der für ein gegebenes Feld ausgewählt ist.
Wenn Sie die Präfixoperatoren FST. und LST. verwenden, ist es wichtig, dass Sie die Struktur Ihrer Datenquelle kennen.
Weitere Informationen über Segmenttypen finden Sie im Handbuch Daten mit der WebFOCUS-Sprache beschreiben . Falls Sie Daten in einer Datenquelle neu organisieren oder die Datenquelle während der Reporterstellung neu strukturieren möchten, finden Sie Informationen unter Die Reportverarbeitung verbessern.
Die folgende Anfrage ruft den ersten logischen Datensatz im EMP_ID-Feld ab:
TABLE FILE EMPLOYEE SUM FST.EMP_ID END
Die Ausgabe ist:
FST EMP_ID ------ 071382660
Die Datenquelle EMPLOYEE enthält das Segment DEDUCT, das die Felder DED_CODE und DED_AMT vom niedrigsten Wert zum höchsten Wert anordnet (Segmenttyp S1). Das Feld DED_CODE gibt den Abzugstyp an, wie z. B. CITY, STATE, FED und FICA. In der nächsten Anfrage wird für jeden Angestellten der erste logische Datensatz für DED_CODE abgerufen:
TABLE FILE EMPLOYEE SUM FST.DED_CODE BY EMP_ID END
Die Ausgabe ist:
FST EMP_ID DED_CODE ------ -------- 071382660 CITY 112847612 CITY 117593129 CITY 119265415 CITY 119329144 CITY 123764317 CITY 126724188 CITY 219984371 CITY 326179357 CITY 451123478 CITY 543729165 CITY 818692173 CITY
Beachten Sie jedoch, dass der Befehl SUM LST.DED_CODE den letzten logischen Datensatz für DED_CODE für jeden Angestellten abgerufen hätte.
Wenn sich der Datensatz in einem Segment mit Werten befindet, die absteigend sortiert sind (Segmenttyp SH1), ist der erste logische Datensatz, den der FST.-Präfixoperator abruft, der höchste Wert im Werteset. Der LST.-Präfixoperator würde daher den niedrigsten Wert im Werteset abrufen.
Die Datenquelle EMPLOYEE enthält beispielsweise das Segment PAYINFO, das die Felder JOBCODE, SALARY, PCT_INC und DAT_INC in absteigender Reihenfolge anordnet (Segmenttyp SH1). In der nächsten Anfrage wird für jeden Angestellten der erste logische Datensatz für SALARY abgerufen:
TABLEF FILE EMPLOYEE SUM FST.SALARY BY EMP_ID END
Die Ausgabe ist:
FST EMP_ID SALARY ------ ------ 071382660 $11,000.00 112847612 $13,200.00 117593129 $18,480.00 119265415 $9,500.00 119329144 $29,700.00 123764317 $26,862.00 126724188 $21,120.00 219984371 $18,480.00 326179357 $21,780.00 451123478 $16,100.00 543729165 $9,000.00 818692173 $27,062.00
Es hätte jedoch der Befehl SUM LST.SALARY den letzten logischen Datensatz für SALARY für jeden Angestellten abgerufen.
Sie können mit einem Anzeigebefehl Vorkommnisse zählen und Werte summieren, indem Sie die Präfixoperatoren CNT., SUM. und TOT. verwenden. Wie der COUNT-Befehl zählt auch CNT. die Vorkommnisse des Feldes, dessen Präfix es ist. Wie der SUM-Befehl summiert auch SUM. die Werte des Feldes, dessen Präfix es ist. TOT. summiert die Werte des Feldes, dessen Präfix es ist, wenn es in einer Kopfzeile verwendet wird (einschließlich Fußzeilen, Zwischenkopfzeilen und Zwischenfußzeilen).
Die folgende Anfrage zählt die Vorkommnisse von PRODUCT_ID und summiert den Wert von UNIT_PRICE.
TABLE FILE GGPRODS SUM CNT.PRODUCT_ID AND UNIT_PRICE END
Die Ausgabe ist:
Product Code Unit COUNT Price ------- ----- 10 660.00
Die folgende Anfrage zählt die Vorkommnisse von PRODUCT_ID und summiert den Wert von UNIT_PRICE.
TABLE FILE GGPRODS COUNT PRODUCT_ID AND SUM.UNIT_PRICE END
Die Ausgabe ist:
Product Code Unit COUNT Price ------- ----- 10 660.00
In der folgenden Anfrage wird der Präfixoperator TOT verwendet, um die Summe der aktuellen Gehälter für alle Angestellten anzuzeigen.
TABLE FILE EMPLOYEE PRINT LAST_NAME BY DEPARTMENT ON TABLE SUBFOOT "Total salaries equal: <TOT.CURR_SAL" END
Die Ausgabe ist:
DEPARTMENT LAST_NAME ---------- --------- MIS SMITH JONES MCCOY BLACKWOOD GREENSPAN CROSS PRODUCTION STEVENS SMITH BANNING IRVING ROMANS MCKNIGHT Total salaries equal: $222,284.00
Vorgehensweise: |
Wenn RANKED BY fieldname in einer Sortierphrase in einer TABLE-Anfrage verwendet wird, werden nicht nur die Daten nach dem angegebenen Feld sortiert, sondern den Instanzen auch ein RANK-Wert zugewiesen. Der RNK.-Präfixoperator berechnet auch den Rang und erlaubt gleichzeitig, dass der RANK-Wert an einer beliebigen Stelle auf der Seite gedruckt wird. Sie verwenden diesen Operator, indem Sie RNK.fieldname angeben, wobei fieldname ein BY-Feld in der Anfrage ist.
Die Rangfolge wird zugewiesen, nachdem die Datensätze ausgewählt und sortiert wurden. Es kann daher der RNK.-Operator nicht in einem WHERE- oder IF-Auswahltest oder in einem virtuellen Feld (DEFINE) verwendet werden. Es kann RNK.fieldname jedoch in einem WHERE TOTAL- oder IF TOTAL-Test oder in einem berechneten Wert (COMPUTE) verwendet werden. Sie können den Default-Spaltentitel für das Rangfeld mit einer AS-Phrase ändern.
Sie können den RNK.-Operator auf mehrere Sortierfelder anwenden. In diesem Fall wird der Rang für jedes BY-Feld innerhalb des ihm übergeordneten BY-Feldes berechnet.
In einem PRINT-Befehl, einer COMPUTE-Formel oder einer IF/WHERE TOTAL-Formel:
RNK.field ...
Hierbei gilt:
Die folgende Anfrage stuft Dienstjahre in einer Abteilung und Gehalt in den Dienstjahren und der Abteilung ein. Beachten Sie, dass Dienstjahre vom Wert von TODAY abhängen. Die Ausgabe für dieses Beispiel war gültig, als es im September 2006 ausgeführt wurde:
DEFINE FILE EMPDATA TODAY/YYMD = &YYMD; YRS_SERVICE/I9 = DATEDIF(HIREDATE,TODAY,'Y'); END TABLE FILE EMPDATA PRINT SALARY RNK.YRS_SERVICE AS 'RANKING,BY,SERVICE' RNK.SALARY AS 'SALARY,RANK' BY DEPT BY HIGHEST YRS_SERVICE BY HIGHEST SALARY NOPRINT WHERE DEPT EQ 'MARKETING' OR 'SALES' ON TABLE SET PAGE NOPAGE END
Die Ausgabe ist:
RANKING BY SALARY DEPT YRS_SERVICE SALARY SERVICE RANK ---- ----------- ------ ------- ------ MARKETING 17 $55,500.00 1 1 $55,500.00 1 1 16 $62,500.00 2 1 $62,500.00 2 1 $62,500.00 2 1 $58,800.00 2 2 $52,000.00 2 3 $35,200.00 2 4 $32,300.00 2 5 15 $50,500.00 3 1 $43,400.00 3 2 SALES 17 $115,000.00 1 1 $54,100.00 1 2 16 $70,000.00 2 1 $43,000.00 2 2 15 $43,600.00 3 1 $39,000.00 3 2 15 $30,500.00 3 3
Die folgende Anfrage zeigt nur die Zeilen mit den zwei höchsten Gehältern in der Kategorie Dienstjahre an. Beachten Sie, dass Dienstjahre vom Wert von TODAY abhängen. Die Ausgabe für dieses Beispiel war gültig, als es im September 2006 ausgeführt wurde:
DEFINE FILE EMPDATA TODAY/YYMD = &YYMD; YRS_SERVICE/I9 = DATEDIF(HIREDATE,TODAY,'Y'); END TABLE FILE EMPDATA PRINT LASTNAME FIRSTNAME RNK.SALARY BY HIGHEST YRS_SERVICE BY HIGHEST SALARY WHERE TOTAL RNK.SALARY LE 2 END
Die Ausgabe ist:
RANK YRS_SERVICE SALARY LASTNAME FIRSTNAME SALARY ----------- ------ -------- --------- ------ 17 $115,000.00 LASTRA KAREN 1 $80,500.00 NOZAWA JIM 2 16 $83,000.00 SANCHEZ EVELYN 1 $70,000.00 CASSANOVA LOIS 2 15 $62,500.00 HIRSCHMAN ROSE 1 WANG JOHN 1 $50,500.00 LEWIS CASSANDRA 2
Die folgende Anzeige markiert Y für Datensätze, bei denen der Rang des Gehalts in der Abteilung kleiner oder gleich 5 ist und der Rang der Dienstjahre innerhalb von Gehalt und Abteilung weniger oder gleich 6 ist. Ansonsten hat die Flag den Wert N. Beachten Sie, dass die Dienstjahre vom Wert von TODAY abhängen. Die Ausgabe für dieses Beispiel war gültig, als es im September 2006 ausgeführt wurde:
DEFINE FILE EMPDATA TODAY/YYMD = &YYMD; YRS_SERVICE/I9 = DATEDIF(HIREDATE,TODAY,'Y'); END TABLE FILE EMPDATA PRINT RNK.SALARY RNK.YRS_SERVICE COMPUTE FLAG/A1 = IF RNK.SALARY LE 5 AND RNK.YRS_SERVICE LE 6 THEN 'Y' ELSE 'N'; BY DEPT BY SALARY BY YRS_SERVICE WHERE DEPT EQ 'MARKETING' OR 'SALES' ON TABLE SET PAGE NOPAGE END
Die Ausgabe ist:
RANK RANK DEPT SALARY YRS_SERVICE SALARY YRS_SERVICE FLAG ---- ------ ----------- ------ ----------- ---- MARKETING $32,300.00 16 1 1 Y $35,200.00 16 2 1 Y $43,400.00 15 3 1 Y $50,500.00 15 4 1 Y $52,000.00 16 5 1 Y $55,500.00 17 6 1 N 6 1 N $58,800.00 16 7 1 N $62,500.00 16 8 1 N 8 1 N 8 1 N SALES $30,500.00 15 1 1 Y $39,000.00 15 2 1 Y $43,000.00 16 3 1 Y $43,600.00 15 4 1 Y $54,100.00 17 5 1 Y $70,000.00 16 6 1 N $115,000.00 17 7 1 N
WebFOCUS |