IF Bedingung
Verfasst von Goldie am 6 Dezember, 2007 - 16:34
Hallo zusammen,
würde mich freuen, wenn mir jemand von euch helfen könnte.
Es soll geprüft werden ob der Wert in der Spalte round ARPM kleiner 1 ist. Sollte diese Bedingung erfüllt sein, soll in die neue Spalte CALCULATED Score ARPU=0 eingetragen werden.
PROC SQL;
CREATE TABLE EGTASK.QURY8822 AS SELECT DISTINCT QURY9723.ROOT_CUSTOMER_NODE_ID FORMAT=11.,
QURY9723.'round ARPM'n,
( WHEN (round ARPM<1) THEN ) AS 'Score ARPU'n
FROM EGTASK.QURY9723 AS QURY9723;
QUIT;
CREATE TABLE EGTASK.QURY8822 AS SELECT DISTINCT QURY9723.ROOT_CUSTOMER_NODE_ID FORMAT=11.,
QURY9723.'round ARPM'n,
( WHEN (round ARPM<1) THEN ) AS 'Score ARPU'n
FROM EGTASK.QURY9723 AS QURY9723;
QUIT;
folgende Fehlermeldung bringt SAS
The SAS System 12:49 Thursday, December 6, 2007
1 *';*";*/;run;
2 OPTIONS PAGENO=MIN;
3
4
5 ODS _ALL_ CLOSE;
NOTE: Some of your options or statements may not be supported with the Activex or Java series of devices. Graph defaults for these drivers may be different from other SAS/GRAPH device drivers. For further information, please contact Technical Support.
6 OPTIONS DEV=ACTIVEX;
7 FILENAME EGHTML TEMP;
NOTE: Writing HTML(EGHTML) Body file: EGHTML
8 ODS HTML(ID=EGHTML) FILE=EGHTML STYLESHEET=(URL="file:///C:/Program%20Files/SAS/Shared%20Files/BIClientStyles/EGDefault.css") ATTRIBUTES=("CODEBASE"="http://www2.sas.com/codebase/graph/v91/sasgraph.exe") NOGFOOTNOTE GPATH=&sasworklocation
8 ! NOGTITLE STYLE=EGDefault ENCODING='utf-8';
9
10 %LET _CLIENTTASKLABEL=%NRBQUOTE(Query1);
11 %LET _EGTASKLABEL=%NRBQUOTE(Query1);
12
13 %_eg_conditional_dropds(EGTASK.QURY8822);
14
15 PROC SQL;
16 CREATE TABLE EGTASK.QURY8822 AS SELECT DISTINCT QURY9723.ROOT_CUSTOMER_NODE_ID FORMAT=11.,
17 QURY9723.'round ARPM'n,
18 ( WHEN (round ARPM>1) THEN CALCULATED Score ARPU=0
____ ____
22 76
ERROR 22-322: Syntax error, expecting one of the following: !, !!, &, (, *, **, +, ',', -, '.', /, >, >=, >>, =, >, >=, AND, EQ, EQT, GE, GET, GT, GTT, LE, LET, LT, LTT, NE, NET, OR, ^=, |, ||, ~=.
ERROR 76-322: Syntax error, statement will be ignored.
18 ! ( WHEN (round ARPM>1) THEN CALCULATED Score ARPU=0
____
22
ERROR 22-322: Syntax error, expecting one of the following: !, !!, &, ), *, **, +, -, /, >, >=, >>, =, >, >=, ?, AND, BETWEEN, CONTAINS, EQ, EQT, GE, GET, GT, GTT, IN, IS, LE, LET, LIKE, LT, LTT, NE, NET, NOT, NOTIN, OR, ^, ^=, |, ||, ~, ~=.
19 ) AS 'Score ARPU'n
20 FROM EGTASK.QURY9723 AS QURY9723;
NOTE: PROC SQL set option NOEXEC and will continue to check the syntax of statements.
21 QUIT;
NOTE: The SAS System stopped processing this step because of errors.
NOTE: PROCEDURE SQL used (Total process time):
real time 0.00 seconds
cpu time 0.00 seconds
22
23
24 %LET _CLIENTTASKLABEL=;
25 %LET _EGTASKLABEL=;
26
27
28
29
30 ODS _ALL_ CLOSE; RUN;
31 *';*";*/;run;
32
33 QUIT; RUN;
34 %_egepilogue;
NOTE: Writing HTML Body file: _EGCLOSE
NOTE: 1 lines were written to file PRINT.
NOTE: DATA statement used (Total process time):
real time 0.00 seconds
cpu time 0.00 seconds
NOTE: Fileref _EGCLOSE has been deassigned.
Vielen Dank für eure Hilfe
»
- Anmelden oder Registrieren um Kommentare zu schreiben

round-Funktion
Die (fehlenden) Klammern der round-Funktionen dürften das Problem sein. Darüber hinaus kann man das WHEN-Statement weglassen
CREATE TABLE EGTASK.QURY8822 AS SELECT DISTINCT QURY9723.ROOT_CUSTOMER_NODE_ID FORMAT=11.,
QURY9723.'round ARPM'n,
round(ARPM)<1 AS 'Score ARPU'n
FROM EGTASK.QURY9723 AS QURY9723;
QUIT;