I have a table called Item with columns ItemID (PK), ItemName, ExpectedSubItems and another table called SubItem with columns SubItemID (PK), ItemID (FK), SubItemName.
I want to return all rows from Item where the number of SubItems is different from ExpectedSubItems.
I tried to use something like:-
Select * From Item
Join SubItem on Item.ItemID = SubItem.ItemID
Where ExpectedSubItems = Count(SubItem.ItemID)
but that gives me the error:-
An aggregate may not appear in the
WHERE clause unless it is in a
subquery contained in a HAVING clause
or a select list, and the column being
aggregated is an outer reference.
Any ideas from the SQL guru’s out there?
you need a sub-query