DYNAMIC RESULT SETS 1
LANGUAGE SQL
ss: 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
		     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 ss	



