DYNAMIC RESULT SETS 1
LANGUAGE SQL
ss: BEGIN

	            BEGIN
					                 DECLARE crs CURSOR WITH RETURN FOR
					                 SELECT dde.Name
								     FROM DDCLElement dde
								     WHERE dde.DdsTypeId = 26
								           AND dde.Id IN (SELECT * FROM SESSION.numeric_param_temp) 	
								           AND dde.id NOT IN
														   (
															  SELECT DISTINCT dde1.id
															  FROM DDCLElement dde1
																  JOIN DDCLValue ddv ON ddv.ElementId = dde1.Id
																  JOIN DDCLProperty ddp ON dde1.id = ddp.elementid
															  WHERE dde1.DdsTypeId = 26
																   AND dde1.islocal = 0
																   AND ddv.ValueTypeId IN (2, 4)
																   AND ddv.ReferenceDdsTypeId = 26
																   AND UPPER(ddp.name) = 'DIALOGUES'
														   )
								           AND dde.id NOT IN
														   (
															  SELECT DISTINCT DDCLElementChild.id
															  FROM DDCLElement dde2
																  INNER JOIN DDCLValue ddv ON dde2.Id = ddv.ElementId
																  INNER JOIN DDCLProperty ddp ON ddv.PropertyId = ddp.Id
																  INNER JOIN DDCLElement AS DDCLElementChild ON UPPER(ddv.ReferenceName) = UPPER(DDCLElementChild.Name)
																										  AND ddv.ReferenceDdsTypeId = DDCLElementChild.DdsTypeId
															  WHERE dde2.DdsTypeId = 25
																   AND ddv.ReferenceDdsTypeId = 26
																   AND DDCLElementChild.Id IN (SELECT * FROM SESSION.numeric_param_temp) 
																   AND ddv.ValueTypeId IN (2, 4)
																   AND dde2.islocal = 0
																   AND UPPER(ddp.Name) = 'DIALOGUES'
														   )
								                AND dde.id NOT IN
															  (
																 SELECT DISTINCT
																	   DDCLElementChild.id
																 FROM DDCLElement dde3
																	 INNER JOIN DDCLValue ddv ON dde3.Id = ddv.ElementId
																	 INNER JOIN DDCLProperty ddp ON ddv.PropertyId = ddp.Id
																	 INNER JOIN DDCLElement AS DDCLElementChild ON UPPER(ddv.ReferenceName) = UPPER(DDCLElementChild.Name)
																											 AND ddv.ReferenceDdsTypeId = DDCLElementChild.DdsTypeId
																 WHERE dde3.DdsTypeId = 26
																	  AND ddv.ReferenceDdsTypeId = 26
																	  AND DDCLElementChild.Id IN (SELECT * FROM SESSION.numeric_param_temp)	 
																	  AND UPPER(ddp.Name) = 'PROCESSING-STRUCTURE'
															  )
								                AND dde.id NOT IN
																 (
								         
																	   SELECT dde4.Id
																	   FROM DDCLElement dde4
																		   INNER JOIN DDCLValue ddv ON dde4.Id = ddv.ElementId
																		   INNER JOIN DDCLProperty ddp ON ddp.Id = ddv.PropertyId
																	   WHERE     dde4.DdsTypeId = 26
																		    AND UPPER(ddp.Name) = 'TASK'
																		    AND UPPER(ddv.ReferenceName) 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	



