DYNAMIC RESULT SETS 1
LANGUAGE SQL
ss: BEGIN
           
	            BEGIN
					                 DECLARE crs CURSOR WITH RETURN FOR
					                 SELECT DISTINCT
								            dde.Name
								     FROM DDCLElement dde
								     WHERE dde.DdsTypeId = 27
								           AND dde.Id IN (SELECT * FROM SESSION.numeric_param_temp)	 
								           AND dde.Id NOT IN
													    (
														   SELECT t.id
														   FROM
														   (
															  SELECT dde1.Id AS id,
																    ddv.Value AS name
															  FROM DDCLElement dde1
																  INNER JOIN DDCLValue ddv ON dde1.Id = ddv.ElementId
																  INNER JOIN DDCLProperty ddp ON ddp.Id = ddv.PropertyId
																						   AND UPPER(ddp.Name) = 'PROGRAM-ID'
															  WHERE dde1.DdsTypeId = 27
								
															  UNION
								
															  SELECT dde2.Id AS id,
																    dde2.Name AS name
															  FROM DDCLElement dde2
																  LEFT OUTER JOIN DDCLProperty ddp ON ddp.ElementId = dde2.Id
																							   AND UPPER(ddp.Name) = 'PROGRAM-ID'
															  WHERE dde2.DdsTypeId = 27
																   AND ddp.Id IS NULL
														   ) AS t
														   WHERE UPPER(t.name) IN
																		   (
								            
																				SELECT UPPER(Programs_1.ProgramName)
																				FROM Programs pgm 
																					INNER JOIN OccurrencesStmt os ON pgm.ProgramID = os.ProgID
																					INNER JOIN StatementReference sr ON os.OccurID = sr.OccurID
																					INNER JOIN Occurrences occ ON occ.OccurID = pgm.OccurID
																					INNER JOIN Paths pth ON occ.PathID = pth.PathID
																					INNER JOIN Programs AS Programs_1 ON sr.ResourceID = Programs_1.ProgramID
																				WHERE sr.ResourceType = 5
																					AND pgm.OccurID <> 0
																		   )
													    )
								     ORDER BY dde.Name;
								                      
				     OPEN crs;
				
                END;
END ss	



