You need to distinct members ;)
DECLARE @Family TABLE (FamilyID INT IDENTITY(1,1), FamilyName VARCHAR(50), City VARCHAR(50))
INSERT INTO @Family (FamilyName, City)
SELECT 'FamilyW1', 'Warsaw'
UNION ALL SELECT 'FamilyW2', 'Warsaw'
UNION ALL SELECT 'FamilyW3', 'Warsaw'
UNION ALL SELECT 'FamilyK1', 'Katowice'
UNION ALL SELECT 'FamilyK2', 'Katowice'
UNION ALL SELECT 'FamilyK3', 'Katowice'
UNION ALL SELECT 'FamilyK4', 'Katowice'
UNION ALL SELECT 'FamilyB1', 'Bialystok'
UNION ALL SELECT 'FamilyB2', 'Bialystok'
UNION ALL SELECT 'FamilyB3', 'Bialystok'
DECLARE @FamilyMembers TABLE (MemberID INT IDENTITY(1,1), FamilyID INT)
INSERT INTO @FamilyMembers (FamilyID)
SELECT 1
UNION ALL SELECT 1
UNION ALL SELECT 1
UNION ALL SELECT 1
UNION ALL SELECT 1
UNION ALL SELECT 1
UNION ALL SELECT 2
UNION ALL SELECT 2
UNION ALL SELECT 2
UNION ALL SELECT 2
UNION ALL SELECT 2
UNION ALL SELECT 2
UNION ALL SELECT 2
UNION ALL SELECT 3
UNION ALL SELECT 3
UNION ALL SELECT 3
UNION ALL SELECT 3
UNION ALL SELECT 3
UNION ALL SELECT 3
UNION ALL SELECT 3
UNION ALL SELECT 4
UNION ALL SELECT 4
UNION ALL SELECT 4
UNION ALL SELECT 4
UNION ALL SELECT 5
UNION ALL SELECT 5
UNION ALL SELECT 6
UNION ALL SELECT 6
UNION ALL SELECT 6
UNION ALL SELECT 6
UNION ALL SELECT 7
UNION ALL SELECT 7
UNION ALL SELECT 8
UNION ALL SELECT 8
UNION ALL SELECT 8
UNION ALL SELECT 8
UNION ALL SELECT 9
UNION ALL SELECT 9
UNION ALL SELECT 9
UNION ALL SELECT 10
UNION ALL SELECT 10
UNION ALL SELECT 10
UNION ALL SELECT 10
UNION ALL SELECT 10
SELECT Fam.City, COUNT(DISTINCT Fam.FamilyID) AS CountOfFamilies, COUNT(DISTINCT Mem.MemberID) AS NumberOfMembers
FROM @Family AS Fam INNER JOIN @FamilyMembers AS Mem ON Fam.FamilyID = Mem.FamilyID
GROUP BY Fam.City
Result:
Bialystok 3 12
Katowice 4 12
Warsaw 3 20