AS SELECT DISTINCT 
	DDCLElement.Id, 
	DDCLElement.Name, 
	DDCLElement.DdsTypeId, 
	DDCLElementChild.Id AS ChildId, 
	ElementSourceInfo.StartRow AS ElementStartRow, 
	ElementSourceInfo.EndRow AS ElementEndRow, 
	Paths_1.PathStr AS ElementPathStr, 
	CallSourceInfo.StartRow AS CallStartRow, 
	CallSourceInfo.EndRow AS CallEndRow, 
	Paths_2.PathStr AS CallPathStr  
FROM DDCLElement 
	INNER JOIN DDCLValue ON DDCLElement.Id=DDCLValue.ElementId 
	INNER JOIN DDCLProperty ON DDCLValue.PropertyId=DDCLProperty.Id 
	INNER JOIN DDCLElement AS DDCLElementChild ON DDCLValue.ReferenceName=DDCLElementChild.Name 
		AND DDCLValue.ReferenceDdsTypeId=DDCLElementChild.DdsTypeId 
	INNER JOIN DDCLSourceInfo AS ElementSourceInfo ON DDCLElement.SourceInfo=ElementSourceInfo.Id 
	INNER JOIN Programs AS Programs_1 ON ElementSourceInfo.ProgramId=Programs_1.ProgramID 
	INNER JOIN Occurrences AS Occurrences_1 ON Programs_1.OccurID=Occurrences_1.OccurID 
	INNER JOIN Paths AS Paths_1 ON Occurrences_1.PathID=Paths_1.PathID 
	INNER JOIN DDCLSourceInfo AS CallSourceInfo ON DDCLValue.SourceInfo=CallSourceInfo.Id 
	INNER JOIN Programs AS Programs_2 ON CallSourceInfo.ProgramId=Programs_2.ProgramID 
	INNER JOIN Occurrences AS Occurrences_2 ON Programs_2.OccurID=Occurrences_2.OccurID 
	INNER JOIN Paths AS Paths_2 ON Occurrences_2.PathID=Paths_2.PathID 
WHERE (DDCLElementChild.Id IN (SELECT * FROM #numeric_param_temp)) 
	AND (DDCLValue.ReferenceDdsTypeId=14) 
	AND (
		(DDCLElement.DdsTypeId=11 AND DDCLProperty.Name='PRINT-FORM')
		OR
		(DDCLElement.DdsTypeId IN (11,16,26) AND DDCLProperty.Name='DISPLAY-STRUCTURE')
	)
UNION
SELECT DISTINCT 
	DDCLElement.Id, 
	DDCLElement.Name, 
	DDCLElement.DdsTypeId, 
	DDCLElementChild.Id AS ChildId, 
	ElementSourceInfo.StartRow AS ElementStartRow, 
	ElementSourceInfo.EndRow AS ElementEndRow, 
	Paths_1.PathStr AS ElementPathStr, 
	CallSourceInfo.StartRow AS CallStartRow, 
	CallSourceInfo.EndRow AS CallEndRow, 
	Paths_2.PathStr AS CallPathStr 
FROM DDCLElement 
	INNER JOIN DDCLValue AS DDCLValue_1 ON DDCLElement.Id = DDCLValue_1.ElementId 
	INNER JOIN DDCLProperty AS DDCLProperty_1 ON DDCLValue_1.PropertyId = DDCLProperty_1.Id 
	INNER JOIN DDCLValue AS DDCLValue_2 ON DDCLValue_1.ReferenceName=DDCLValue_2.ReferenceName 
		AND DDCLValue_1.ReferenceDdsTypeId=DDCLValue_2.ReferenceDdsTypeId 
	INNER JOIN DDCLProperty AS DDCLProperty_2 ON DDCLValue_2.PropertyId=DDCLProperty_2.Id 
	INNER JOIN DDCLElement AS DDCLElementChild ON DDCLValue_2.ElementId=DDCLElementChild.Id 
	INNER JOIN DDCLSourceInfo AS ElementSourceInfo ON DDCLElement.SourceInfo=ElementSourceInfo.Id 
	INNER JOIN Programs AS Programs_1 ON ElementSourceInfo.ProgramId=Programs_1.ProgramID 
	INNER JOIN Occurrences AS Occurrences_1 ON Programs_1.OccurID=Occurrences_1.OccurID 
	INNER JOIN Paths AS Paths_1 ON Occurrences_1.PathID=Paths_1.PathID 
	INNER JOIN DDCLSourceInfo AS CallSourceInfo ON DDCLValue_2.SourceInfo=CallSourceInfo.Id 
	INNER JOIN Programs AS Programs_2 ON CallSourceInfo.ProgramId=Programs_2.ProgramID 
	INNER JOIN Occurrences AS Occurrences_2 ON Programs_2.OccurID=Occurrences_2.OccurID 
	INNER JOIN Paths AS Paths_2 ON Occurrences_2.PathID=Paths_2.PathID 
WHERE (DDCLElement.DdsTypeId IN (11,16)) 
	AND (DDCLValue_1.ReferenceDdsTypeId=15) 
	AND (DDCLProperty_1.Name='DISPLAY-STRUCTURE') 
	AND (DDCLValue_2.ReferenceDdsTypeId=15) 
	AND (DDCLProperty_2.Name='DISPLAY-STRUCTURE') 
	AND (DDCLElementChild.DdsTypeId=14) 
	AND (DDCLElementChild.Id IN (SELECT * FROM #numeric_param_temp))	
UNION
SELECT DISTINCT 
	DDCLElement.Id, 
	DDCLElement.Name, 
	DDCLElement.DdsTypeId, 
	DDCLElementChild.Id AS ChildId, 
	ElementSourceInfo.StartRow AS ElementStartRow, 
	ElementSourceInfo.EndRow AS ElementEndRow, 
	Paths_1.PathStr AS ElementPathStr, 
	CallSourceInfo.StartRow AS CallStartRow, 
	CallSourceInfo.EndRow AS CallEndRow, 
	Paths_2.PathStr AS CallPathStr  
FROM DDCLElement 
	INNER JOIN DDCLValue AS DDCLValue_1 ON DDCLElement.Id = DDCLValue_1.ElementId 
	INNER JOIN DDCLProperty AS DDCLProperty_1 ON DDCLValue_1.PropertyId = DDCLProperty_1.Id 
	INNER JOIN DDCLElement AS DDCLElement_BLOCK ON DDCLValue_1.ReferenceName=DDCLElement_BLOCK.Name 
		AND DDCLValue_1.ReferenceDdsTypeId=DDCLElement_BLOCK.DdsTypeId 
	INNER JOIN DDCLValue AS DDCLValue_2 ON DDCLElement_BLOCK.Name=DDCLValue_2.ReferenceName 
		AND DDCLElement_BLOCK.DdsTypeId=DDCLValue_2.ReferenceDdsTypeId 
	INNER JOIN DDCLProperty AS DDCLProperty_2 ON DDCLValue_2.PropertyId=DDCLProperty_2.Id 
	INNER JOIN DDCLElement AS DDCLElementChild ON DDCLValue_2.ElementId=DDCLElementChild.Id 
	INNER JOIN DDCLSourceInfo AS ElementSourceInfo ON DDCLElement.SourceInfo=ElementSourceInfo.Id 
	INNER JOIN Programs AS Programs_1 ON ElementSourceInfo.ProgramId=Programs_1.ProgramID 
	INNER JOIN Occurrences AS Occurrences_1 ON Programs_1.OccurID=Occurrences_1.OccurID 
	INNER JOIN Paths AS Paths_1 ON Occurrences_1.PathID=Paths_1.PathID 
	INNER JOIN DDCLSourceInfo AS CallSourceInfo ON DDCLValue_2.SourceInfo=CallSourceInfo.Id 
	INNER JOIN Programs AS Programs_2 ON CallSourceInfo.ProgramId=Programs_2.ProgramID 
	INNER JOIN Occurrences AS Occurrences_2 ON Programs_2.OccurID=Occurrences_2.OccurID 
	INNER JOIN Paths AS Paths_2 ON Occurrences_2.PathID=Paths_2.PathID 
WHERE (DDCLElement.DdsTypeId IN (11)) 
	AND (DDCLValue_1.ReferenceDdsTypeId=15) 
	AND (DDCLProperty_1.Name='PRINT-FORM') 
	AND (DDCLProperty_2.Name='DISPLAY-STRUCTURE') 
	AND (DDCLElementChild.DdsTypeId=14) 
	AND (DDCLElementChild.Id IN (SELECT * FROM #numeric_param_temp)) 	
ORDER BY DDCLElement.Name 