DYNAMIC RESULT SETS 1
LANGUAGE SQL
ss: BEGIN

             DECLARE crs CURSOR WITH RETURN FOR
             SELECT de.name AS ElementName,
                    dv.referencename AS RecordName,
                    dp.name AS PropertyName,
		            COUNT(dp.name) AS no,
		            de.DdsTypeId
		     FROM DDCLElement de
		          INNER JOIN DDCLProperty dp ON de.id = dp.elementid
		          INNER JOIN DDCLValue dv ON dp.id = dv.propertyid
		     WHERE de.islocal = 0
                   AND dv.referenceddstypeid = 3
                   AND dv.ValueTypeId IN (2, 4)
		           AND (
		                (de.DdsTypeId = 11 AND UPPER(dp.name) IN ('CHANGES', 'OUTPUT', 'PROCESSING-STRUCTURE', 'SELECTION', 'SINGULAR-VIEW'))
		                OR 
		                (de.DdsTypeId = 16 AND UPPER(dp.name) IN ('CHANGES', 'PROCESSING-STRUCTURE', 'SELECTION', 'SINGULAR-VIEW'))
		                OR 
		                (de.DdsTypeId = 29 AND UPPER(dp.name) = 'STRUCTURE')
		                OR 
		                (de.DdsTypeId IN (27, 28) AND UPPER(dp.name) IN ('PROCESSING-STRUCTURE', 'SELECTION', 'VIEW'))
		                OR 
		                (de.DdsTypeId = 12 AND UPPER(dp.name) IN ('STRUCTURE', 'RECORDS'))
		               )
		     GROUP BY de.name, dv.referencename, dp.name, de.DdsTypeId
		     ORDER BY de.name,
		              dv.referencename,
                      dp.name;
              
             OPEN crs;
            
 END ss	
 
 
 
