Sql group by с учетом отношения "один ко многим"
У меня есть SQL-оператор, который должен это сделать:
Показывает количество домов, против страны, где свойство имеет 2 совпадающих "типа людей", т. е. - теперь свойство может иметь 20 продуктов в общей сложности, но 2 будут сопоставлены по моим критериям ниже (125 и 111) - ссылочные номера действительны в моей базе данных и ряд записей получают запись - список уровней возвращается в мой SQL-оператор ниже, но он показывает кучу свойств с количеством 1.
Что я хочу, так это вернуть подсчет внутри страны, количество домов в этой стране (вместе с округом и городом), в которых живут, скажем, 1 взрослый мужчина и 1 взрослая женщина, но сосчитайте дом только один раз.
Страна - это страна
Графство-это графство внутри страны
Город - это город в пределах округа, в пределах страны.
Дом есть дом
Люди-это тип людей, которые могут быть "взрослыми мужчинами","взрослыми женщинами","детьми-мужчинами" и "детьми-женщинами".
LivingThere-это стол, который соединяет людей с домом и тех, кто живет в доме. Он имеет 3 поля, первичное для себя, HouseRef и PeopleRef.
SELECT Country.Country, Country.CountryRef, COUNT(DISTINCT House.HouseRef) AS [Facility Count] FROM Country INNER JOIN County ON Country.CountryRef = County.CountryRef INNER JOIN City ON County.CountyRef = City.CountyRef INNER JOIN House ON City.CityRef = House.CityRef INNER JOIN LivingThere ON House.HouseRef = LivingThere.HouseRef INNER JOIN People ON LivingThere.LivingThereRef = People.LivingThereRef WHERE (LivingThere.LivingThereRef IN (125, 111)) GROUP BY Country.Country, Country.CountryRef, House.HouseRef HAVING (COUNT(LivingThere.LivingThereRef) = 2)
Я думаю, что я почти там - я получаю список домов, которые соответствуют критериям людей для стран, где количество просто показывает 1 на запись, а не, скажем, 1000 против if. и если я подсчитаю эти дома (например, вставив список в открытый офис), то они кажутся правильными, но я ищу общий суб-итог по каждой стране.
Что я упустил? :/
Что я уже пробовал:
Изменение группы и выбирать разные