We are using Informix SE 7.25 UC1 on SuSE Linux.
I have a stored procedure that looks like this:
Code:
CREATE PROCEDURE informix.devisenkurs (ciso CHAR(3), date DATE)
RETURNING CHAR(3), DECIMAL(14, 4), DATE;
DEFINE iso CHAR(3);
DEFINE value DECIMAL(14, 4);
DEFINE ddate DATE;
SELECT c.curiso, d.devvalue, d.devdate
INTO iso, value, ddate
FROM informix.currency c, informix.devisenkurs d
WHERE c.currencyid = d.currencyid AND d.devdate = date
AND c.curiso = ciso;
RETURN iso, value, ddate;
END PROCEDURE;
This works fine. Now I try the following:
Code:
CREATE PROCEDURE informix.devisenkurs (ciso CHAR(3), date DATE)
RETURNING CHAR(3), DECIMAL(14, 4), DATE;
DEFINE iso CHAR(3);
DEFINE value DECIMAL(14, 4);
DEFINE ddate DATE;
SELECT c.curiso, d.devvalue, d.devdate
INTO iso, value, ddate
FROM informix.currency c, informix.devisenkurs d
WHERE c.currencyid = d.currencyid AND d.devdate <= date
AND c.curiso = ciso
ORDER BY d.devdate DESC;
RETURN iso, value, ddate;
END PROCEDURE;
Now I get a syntax error (-201). I've added an "ORDER BY" statement, but I can't get it to work. The idea is to get the last value in a set of values on that day or a previous day. It doesn't matter if I replace 'd.devdate' with '3'.
I tried to enclose the SELECT in a FOREACH and a RETURN ... WITH RESUME. That does not work either.
Do you have any idea what I'm doing wrong?