Sathyaram, thanks for you response. Yes, the lack of a from is definitely giving me problems that I couldn't get arround. Therefore, I changed the statement to 1 query as opposed to using variables. This revised statement is:
SELECT CAST(SUM(CASE FLAG WHEN 2 THEN cast(NWPMU1 as float) END)/SUM(CASE FLAG WHEN 1 THEN cast(NWPMU1 as float) END)as FLOAT)
FROM
((SELECT 1 as flag, NWPMU1/100 as NWPMU1
FROM PRODDTA.F1514 WHERE TRIM(NWMCU) = '24461'
AND PRODDTA.F1514.NWEFTB <= ((1000 * (100 + (YEAR(CURRENT TIMESTAMP) - 2000))) + DAYOFYEAR(CURRENT TIMESTAMP))
AND (PRODDTA.F1514.NWEFTE = 0 OR PRODDTA.F1514.NWEFTE >= ((1000 * (100 + (YEAR(CURRENT TIMESTAMP) - 2000))) + DAYOFYEAR(CURRENT TIMESTAMP)))
AND PRODDTA.F1514.NWARTY = 'RSF'
AND PRODDTA.F1514.NWARLL = 'B'
AND PRODDTA.F1514.NWUNIT = '')
UNION ALL
(SELECT 2 as flag, SUM(NWPMU1/100)
FROM PRODDTA.F1514 t1
WHERE TRIM(NWMCU) = '24461'
AND NWEFTB <= ((1000 * (100 + (YEAR(CURRENT TIMESTAMP) - 2000))) + DAYOFYEAR(CURRENT TIMESTAMP))
AND (NWEFTE = 0 OR NWEFTE >= ((1000 * (100 + (YEAR(CURRENT TIMESTAMP) - 2000))) + DAYOFYEAR(CURRENT TIMESTAMP)))
AND EXISTS
(SELECT PRODDTA.F15017.NWDOCO AS LEASE, PRODDTA.F15017.NWLSVR AS STATUS, PRODDTA.F15017.NWUNIT, PRODDTA.F1501B.NEDL01 AS TENANTNAME, PRODDTA.F1501B.NEAN8 AS TENANT, PRODDTA.F15017.NWMIDT AS RENTDATE, PRODDTA.F15017.NWSPAD AS EXPDATE, PRODDTA.F1501B.NEEFTB AS BEGDATE
FROM PRODDTA.F15017, PRODDTA.F1501B
WHERE TRIM(PRODDTA.F15017.NWMCU) = '24461'
AND PRODDTA.F15017.NWLSVR = PRODDTA.F1501B.NELSVR
AND PRODDTA.F15017.NWDOCO = PRODDTA.F1501B.NEDOCO
AND PRODDTA.F15017.NWMIDT <= ((1000 * (100 + (YEAR(CURRENT TIMESTAMP) - 2000))) + DAYOFYEAR(CURRENT TIMESTAMP))
AND (PRODDTA.F15017.NWMODT = 0 OR PRODDTA.F15017.NWMODT >= ((1000 * (100 + (YEAR(CURRENT TIMESTAMP) - 2000))) + DAYOFYEAR(CURRENT TIMESTAMP)))
AND PRODDTA.F1501B.NEVREF <= ((1000 * (100 + (YEAR(CURRENT TIMESTAMP) - 2000))) + DAYOFYEAR(CURRENT TIMESTAMP))
AND (PRODDTA.F1501B.NEVRED = 0 OR PRODDTA.F1501B.NEVRED >= ((1000 * (100 + (YEAR(CURRENT TIMESTAMP) - 2000))) + DAYOFYEAR(CURRENT TIMESTAMP)))
AND PRODDTA.F1501B.NEEFTB <= ((1000 * (100 + (YEAR(CURRENT TIMESTAMP) - 2000))) + DAYOFYEAR(CURRENT TIMESTAMP))
AND (PRODDTA.F1501B.NEEFTE = 0 OR PRODDTA.F1501B.NEEFTE >= ((1000 * (100 + (YEAR(CURRENT TIMESTAMP) - 2000))) + DAYOFYEAR(CURRENT TIMESTAMP)))
AND PRODDTA.F1501B.NELSST <> 'L'
AND t1.NWMCU=NWMCU AND t1.NWUNIT=NWUNIT))) as VT
__________________________________________
The above statement works perfectly. If I run it in the SQL scripts interface in iSeries navigator I get the value back I need.
The only thing I need to do now is change the '24461' value to a building number parameter that gets passed to the query/procedure.
Can you help me with the CREATE procedure syntax? I have spent hours on that one part and can't find the correct combination. For example, in MS SQL I can execute the SQL directly in the procedure. In the AS400 proc examples I found on the web, they are using cursors. Is that required?