AS SELECT DDCLValue.referencename as RecordName, DDCLElement.name as ElementName, 
	  DDCLProperty.name as PropertyName, count (DDCLProperty.name) as no, DDCLElement.DdsTypeId 
from DDCLElement join DDCLProperty on DDCLElement.id = DDCLProperty.elementid
	 join DDCLValue on DDCLProperty.id=DDCLValue.propertyid
where DDCLElement.islocal='false'
	 and DDCLValue.referenceddstypeid=3
	 AND DDCLValue.ValueTypeId in (2,4)
	 AND (
	 	(DDCLElement.DdsTypeId=11 AND DDCLProperty.name IN ('CHANGES', 'OUTPUT', 'PROCESSING-STRUCTURE', 'SELECTION', 'SINGULAR-VIEW') )
	 	OR
	 	(DDCLElement.DdsTypeId=16 AND DDCLProperty.name IN ('CHANGES', 'PROCESSING-STRUCTURE', 'SELECTION', 'SINGULAR-VIEW') )
	 	OR
	 	(DDCLElement.DdsTypeId=29 AND DDCLProperty.name = 'STRUCTURE' )
	 	OR
	 	(DDCLElement.DdsTypeId in (27,28) AND DDCLProperty.name IN ('PROCESSING-STRUCTURE', 'VIEW', 'SELECTION') )
	 	OR
	 	(DDCLElement.DdsTypeId=12 AND DDCLProperty.name IN ('STRUCTURE', 'RECORDS') )
	 )
group by DDCLValue.referencename, DDCLElement.name, DDCLProperty.name, DDCLElement.DdsTypeId 
order by DDCLValue.referencename, DDCLElement.name, DDCLProperty.name 