Vorgehensweise: |
Eine bedingte Formel weist einen Wert zu, der auf dem Ergebnis einer logischen Formel basiert. Der zugewiesene Wert kann numerisch oder alphanumerisch sein.
Hinweis: Anders als Auswahlkriterien, die IF verwenden, müssen alle alphanumerischen Werte in bedingten Formeln in einfache Anführungszeichen gesetzt werden. z. B. IF COUNTRY EQ 'ENGLAND'.
IF expression1 THEN expression2 [ELSE expression3]
Hierbei gilt:
Beachten Sie, dass der endgültige sortierte Report gemischte Werte angeben kann. Dies hängt davon ab, ob ein DEFINE oder ein COMPUTE verwendet wird, und ob ein Datensatz vor oder nach der Aggregation ausgewertet wird.
Die Formeln, die THEN und ELSE folgen, müssen ein Format ergeben, das kompatibel ist mit dem Format, das dem Feld zugewiesen wurde. Jedes dieser Formeln kann selbst eine bedingte Formel sein. Es darf jedoch die Formel, die auf IF folgt, keine IF ... THEN ... ELSE-Formel sein (z. B. IF ... IF ...).
Im folgenden Beispiel wird eine bedingte Formel verwendet, um den Wert NONE dem Feld BANK_NAME zuzuweisen, wenn ihm ein Datenwert fehlt (d. h. wenn das Feld keine Daten in der Datenquelle hat):
DEFINE FILE EMPLOYEE BANK_NAME/A20 = IF BANK_NAME EQ ' ' THEN 'NONE' ELSE BANK_NAME; END TABLE FILE EMPLOYEE PRINT CURR_SAL AND BANK_NAME BY EMP_ID BY BANK_ACCT END
Die Ausgabe ist:
EMP_ID BANK_ACCT CURR_SAL BANK_NAME ------ --------- -------- --------- 071382660 $11,000.00 NONE 112847612 $13,200.00 NONE 117593129 40950036 $18,480.00 STATE 119265415 $9,500.00 NONE 119329144 160633 $29,700.00 BEST BANK 123764317 819000702 $26,862.00 ASSOCIATED 126724188 $21,120.00 NONE 219984371 $18,480.00 NONE 326179357 122850108 $21,780.00 ASSOCIATED 451123478 136500120 $16,100.00 ASSOCIATED 543729165 $9,000.00 NONE 818692173 163800144 $27,062.00 BANK ASSOCIATION
Sie können eine true- oder eine false-Bedingung definieren und dann testen, um die Reportausgabe zu steuern. Im folgenden Beispiel wird der Wert TRUE dem Feld MYTEST zugewiesen, wenn eine der relationalen Formeln in Klammern true ist. Es wird dann der Wert von MYTEST getestet:
DEFINE FILE EMPLOYEE MYTEST= (CURR_SAL GE 11000) OR (DEPARTMENT EQ 'MIS'); END TABLE FILE EMPLOYEE PRINT CURR_SAL AND DEPARTMENT BY EMP_ID IF MYTEST IS TRUE END
Die Ausgabe ist:
EMP_ID CURR_SAL DEPARTMENT ------ -------- ---------- 071382660 $11,000.00 PRODUCTION 112847612 $13,200.00 MIS 117593129 $18,480.00 MIS 119329144 $29,700.00 PRODUCTION 123764317 $26,862.00 PRODUCTION 126724188 $21,120.00 PRODUCTION 219984371 $18,480.00 MIS 326179357 $21,780.00 MIS 451123478 $16,100.00 PRODUCTION 543729165 $9,000.00 MIS 818692173 $27,062.00 MIS
Hinweis: Sie können auf eine Bedingung, die TRUE oder FALSE ist, nur mit dem Befehl IF testen. Dies ist mit WHERE nicht gültig.
WebFOCUS |