DYNAMIC RESULT SETS 1
LANGUAGE SQL
ss: BEGIN

	            BEGIN
              
					    DECLARE crs CURSOR WITH RETURN FOR	 
						SELECT dt.TableName,
					            pa.AliasName AS ProgramName,
					            st.Description,
					            COUNT(os.OccurID) AS stmtCount,
					            prg.Ancestor,
								pth.PathStr
					     FROM StatementReference sr
					            INNER JOIN OccurrencesStmt os ON sr.OccurID = os.OccurID
					            INNER JOIN Statements st ON os.StatementType = st.StatementType
					            INNER JOIN Programs prg ON os.ProgID = prg.ProgramID
					            INNER JOIN ProgramAliases pa ON prg.ProgramID = pa.ProgramId AND pa.AliasType = 0
					            INNER JOIN DatacomTables dt ON sr.ResourceID = dt.ID
								LEFT OUTER JOIN
													 (
														SELECT  1 AS Flag,
																pgx.ProgramName, pgx.ProgramTypeID
														 FROM Programs pgx
														 GROUP BY pgx.ProgramName, pgx.ProgramTypeID
														 HAVING COUNT(*) > 1
													 ) x ON prg.ProgramName = x.ProgramName AND prg.ProgramTypeID = x.ProgramTypeID
					LEFT OUTER JOIN Paths pth ON pth.PathID = os.PathID AND x.Flag = 1
					     WHERE sr.ResourceType = 182
					           AND UPPER(dt.TableName) IN (SELECT UPPER(Param) FROM SESSION.string_param_temp)
					     GROUP BY dt.TableName, pa.AliasName, prg.Ancestor, st.Description, pth.PathStr
					     ORDER BY dt.TableName, prg.Ancestor, pa.AliasName, pth.PathStr, st.Description;
					           
                        OPEN crs;
                        
                  END;       
 END ss	
 
 
 
 
 
