>>>>>CREATE CURSOR crsTest (Fld1 I) >>>>>CREATE CURSOR crsTest1 (Fld1 I, amount n) >>>>>CREATE CURSOR crsTest2 (Fld1 I, amount n) >>>>> >>>>>INSERT INTO crsTest VALUES (1) >>>>>INSERT INTO crsTest VALUES (2) >>>>>INSERT INTO crsTest VALUES (3) >>>>> >>>>>INSERT INTO crsTest1 VALUES (1,10) >>>>>INSERT INTO crsTest1 VALUES (1,10) >>>>>INSERT INTO crsTest1 VALUES (3,30) >>>>>INSERT INTO crsTest1 VALUES (3,30) >>>>> >>>>>INSERT INTO crsTest2 VALUES (2,20) >>>>>INSERT INTO crsTest2 VALUES (2,20) >>>>>INSERT INTO crsTest2 VALUES (1,100) >>>>> >>>>>SELECT crsTest.Fld1, SUM(crsTest1.Amount) as Amount1, ; >>>>>SUM(crsTest2.Amount) as Amount2; >>>>>FROM crsTest; >>>>>INNER JOIN crsTest1 ON crsTest.Fld1 = crsTest1.Fld1; >>>>>INNER JOIN crsTest2 ON crsTest.Fld1 = crsTest2.Fld1; >>>>>GROUP BY 1 >>>>> >>>>>** (no records in the query) >>>>>SELECT crsTest.Fld1, SUM(NVL(crsTest1.Amount,0)) as Amount1, SUM(NVL(crsTest2.Amount,0)) as Amount2; >>>>>FROM crsTest; >>>>>LEFT JOIN crsTest1 ON crsTest.Fld1 = crsTest1.Fld1; >>>>>LEFT JOIN crsTest2 ON crsTest.Fld1 = crsTest2.Fld1; >>>>>GROUP BY 1 >>>>>>>>>>
>>CREATE CURSOR crsTest (Fld1 I) >>CREATE CURSOR crsTest1 (Fld1 I, amount n) >>CREATE CURSOR crsTest2 (Fld1 I, amount n) >> >>INSERT INTO crsTest VALUES (1) >>INSERT INTO crsTest VALUES (2) >>INSERT INTO crsTest VALUES (3) >> >>INSERT INTO crsTest1 VALUES (1,10) >>INSERT INTO crsTest1 VALUES (1,10) >>INSERT INTO crsTest1 VALUES (3,30) >>INSERT INTO crsTest1 VALUES (3,30) >> >>INSERT INTO crsTest2 VALUES (2,20) >>INSERT INTO crsTest2 VALUES (2,20) >>INSERT INTO crsTest2 VALUES (1,100) >> >>** SUM aggregate this table, the left join multiply the set's rows >>SELECT crsTest.Fld1, NVL(crsTest1.Amount,0) as Amount1, NVL(crsTest2.Amount,0) as Amount2; >>FROM crsTest; >>LEFT JOIN crsTest1 ON crsTest.Fld1 = crsTest1.Fld1; >>LEFT JOIN crsTest2 ON crsTest.Fld1 = crsTest2.Fld1 >> >>* you can use a union with pivot or a nested left join aggregation >> >>* remember, a SQL aggregate function ignore NULLs >> >>SELECT S1.Fld1,MAX(S1.Amount1) Amount1, NVL(SUM(crsTest2.Amount),00000000000) as Amount2; >>FROM (SELECT crsTest.Fld1, NVL(SUM(crsTest1.Amount),00000000000) as Amount1; >> FROM crsTest; >> LEFT JOIN crsTest1 ON crsTest.Fld1 = crsTest1.Fld1 GROUP BY 1) S1; >>LEFT JOIN crsTest2 ON S1.Fld1 = crsTest2.Fld1; >> GROUP BY 1 >>>Thanks Fabio, I think your last select statement does not run in VF8.