AS SELECT DDCLElement.name as ElementName, DDCLValue.referencename as RecordName,
	  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', 'SELECTION', 'VIEW') )	
	 	OR
	 	(DDCLElement.DdsTypeId=12 AND DDCLProperty.name IN ('STRUCTURE', 'RECORDS') ) 	
	 )
group by DDCLElement.name , DDCLValue.referencename, DDCLProperty.name, DDCLElement.DdsTypeId
order by DDCLElement.name , DDCLValue.referencename, DDCLProperty.name 
