AS SELECT DDCLElement.Name
FROM DDCLElement 
WHERE 
 DDCLElement.DdsTypeId=14
 AND (DDCLElement.Id IN (SELECT * FROM #numeric_param_temp)) 
 AND DDCLElement.id not in (
	select distinct DDCLElement.id
	from DDCLElement
	  RIGHT JOIN DDCLValue ON DDCLElement.Name=DDCLValue.ReferenceName AND DDCLElement.DdsTypeId=DDCLValue.ReferenceDdsTypeId 
	  INNER JOIN DDCLProperty ON DDCLValue.PropertyId=DDCLProperty.Id 
	  INNER JOIN DDCLElement AS DDCLElementParent ON DDCLValue.ElementId=DDCLElementParent.Id 
	where DDCLValue.referenceddstypeid=14
	  and DDCLElement.islocal='false'
	  and DDCLValue.ValueTypeId in (2,4)
	  and ( 
	 	 (DDCLElementParent.DdsTypeId IN (11,16,26) AND DDCLProperty.name = 'DISPLAY-STRUCTURE')
	 	OR
	 	 (DDCLElementParent.DdsTypeId=11 AND DDCLProperty.name = 'PRINT-FORM')
	  )
 )
 AND DDCLElement.id not in (
	SELECT DISTINCT DDCLElementChild.Id AS ChildId
	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 	
	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) 
 )	
 AND DDCLElement.id not in (
	SELECT DISTINCT DDCLElementChild.Id 
	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 
	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 