I'm a webfocus newbie and am having trouble with getting a DECODE statement to work the way I would like it to.
TOTALPOINTS/I6 = DECODE QUESTION(Green 100 Red 0);
Basically for the QUESTION data set there are possible responses of "Green", "Red", and a few others. For any value QUESTION besides Green and Red, I would like TOTALPOINTS to be a null value.
The way it works now, if there is a question that is not green or red, the decode statement still presents you with a 0 as the result. I would like it to be NULL.
I'm having trouble accomplishing this and have reviewed the help documentation and searched through the forum without luck. Any help would be greatly appreciated!This message has been edited. Last edited by: Kerry,
WebFOCUS 7.6 Windows, All Outputs
February 20, 2013, 11:12 AM
Francis Mariani
Putting the MISSING keyword in a DECODE crashes the agent, so you could change the DECODE to a series of IF ELSE statements:
TABLE FILE CAR
PRINT
COUNTRY
COMPUTE TOTALPOINTS/I6 MISSING ON =
-*DECODE COUNTRY('ENGLAND' 100 'ITALY' 0 ELSE MISSING);
IF COUNTRY EQ 'ENGLAND' THEN 100 ELSE IF COUNTRY EQ 'ITALY' THEN 0 ELSE MISSING;
END
Francis
Give me code, or give me retirement. In FOCUS since 1991
Production: WF 7.7.05M, Dev Studio, BID, MRE, WebSphere, DB2 / Test: WF 8.1.05M, App Studio, BI Portal, Report Caster, jQuery, HighCharts, Apache Tomcat, MS SQL Server
February 21, 2013, 01:21 AM
FrankDutch
Or do the decode with an extra ... ELSE -1... And in an second define change the minus 1 to a missing ..
Frank
prod: WF 7.6.10 platform Windows, databases: msSQL2000, msSQL2005, RMS, Oracle, Sybase,IE7 test: WF 7.6.10 on the same platform and databases,IE7
February 27, 2013, 03:50 PM
ok
Thanks for the tips. I ended up doing something like
SCORE/I6 MISSING ON = IF DECODE ANSWER(NotApplicable 1 NotAsked 1) GT 0 THEN MISSING ELSE DECODE ANSWER(Green 100 Red 0);
That got me a null value where I wanted it
WebFOCUS 7.6 Windows, All Outputs
February 27, 2013, 04:16 PM
Francis Mariani
Very creative! In all my years of FOCUSing, I've never used a DECODE within an IF statement...
Francis
Give me code, or give me retirement. In FOCUS since 1991
Production: WF 7.7.05M, Dev Studio, BID, MRE, WebSphere, DB2 / Test: WF 8.1.05M, App Studio, BI Portal, Report Caster, jQuery, HighCharts, Apache Tomcat, MS SQL Server
February 28, 2013, 08:55 AM
jgelona
I use DECODE in IF statements all the time when I need MISSING values. I would have coded the statement like this:
SCORE/I6 MISSING ON = IF ANSWER IN ('NotApplicable','NotAsked')
THEN MISSING ELSE DECODE ANSWER(Green 100 Red 0);
In FOCUS since 1985. Prod WF 8.0.08 (z90/Suse Linux) DB (Oracle 11g), Self Serv, Report Caster, WebServer Intel/Linux.