In the above report, we have to include the previous rows' backlog quantity for calculating "Actual Demand" of the current row.
I have a rough idea of using recursive sub queries, but not an expert.
Can you provide a SQl solution for this.
Would be really helpful.
thanks a lot LKBrwn_DBA & stecal for the reponse.
Unfortunately i am not able to use the LAG function in Cognos reporting tool.
I tried the following query from my friend, this works in DB2, but not in oracle.
WITH T1 (ROW_NUM, DEMAND, ACTUAL_DEMAND, BKLG, CAPACITY, DUMMY_ROW_NUM) AS
(
SELECT ROW_NUM
,DEMAND
,DEMAND AS ACTUAL_DEMAND
,CASE WHEN CAPACITY >= DEMAND THEN 0 ELSE DEMAND - CAPACITY END AS BKLG
,CAPACITY
,ROW_NUM + 1
FROM CER_MKTG.CAP_CONSUMPTION
WHERE ROW_NUM = 1
UNION ALL
SELECT A.ROW_NUM
,A.DEMAND
,A.DEMAND + B.BKLG AS ACTUAL_DEMAND
,CASE WHEN A.CAPACITY >= (A.DEMAND + B.BKLG) THEN 0 ELSE (A.DEMAND + B.BKLG) - A.CAPACITY END AS BKLG
,A.CAPACITY
,A.ROW_NUM + 1
FROM CER_MKTG.CAP_CONSUMPTION A
,T1 B
WHERE A.ROW_NUM = B.DUMMY_ROW_NUM
AND A.ROW_NUM > 1
)
SELECT ROW_NUM
,DEMAND
,ACTUAL_DEMAND
,BKLG
,CAPACITY
FROM T1
ORDER BY 1;
Bookmarks