DYNAMIC RESULT SETS 1
LANGUAGE SQL
ss: BEGIN

	            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.ID IN (SELECT * FROM SESSION.numeric_param_temp)
					           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;       
 END ss	
 
 
 
 
