How would you remove the subquery within [Count of Missing Attributes] from the following example.
--Setup data
Declare @Attributes table (AttributeID int)
Declare @Objects table (ObjectID int)
Declare @ObjectAttributes table (ObjectID int, AttributeID int, val int)
Insert Into @Objects (ObjectID) values (1)
Insert Into @Objects (ObjectID) values (2)
Insert Into @Attributes (AttributeID) values (1)
Insert Into @Attributes (AttributeID) values (2)
Insert Into @ObjectAttributes (ObjectID,AttributeID) values (1,1)
Insert Into @ObjectAttributes (ObjectID,AttributeID) values (2,1)
Insert Into @ObjectAttributes (ObjectID,AttributeID) values (2,2)
--Query
Select
ObjectID,
(Select Count(Distinct a2.AttributeID) FROM @Attributes a2) As [Total Count Of Attributes],
Count(Distinct a.AttributeID) as [Count of attributes for this object],
(Select Count(Distinct a2.AttributeID) FROM @Attributes a2) - Count(Distinct a.AttributeID) as [Count of Missing Attributes]
FROM @Attributes a
INNER Join @ObjectAttributes oa
On oa.AttributeID = a.AttributeID
Group By ObjectID
Order By ObjectID