@saphire13
Системный администратор

Как посчитать количество групп в таблице?

Есть таблица в которой лежат ФИО-дата рождения людей:
CREATE TABLE PEOPLES
(
	[ID] INTEGER  NOT NULL,
	[FIO] NVARCHAR(160) NULL,
	[BIRTHDAY] DATETIME NULL,
	CONSTRAINT [PK_Peoples] PRIMARY KEY  ([ID])
)

Ее тестовое наполнение:
INSERT INTO PEOPLES (ID,FIO,BIRTHDAY) VALUES 
(1,'Фёдоров Бенедикт Лукьевич','1980-01-01'),
(2,'Кириллов Май Дмитрьевич','1970-01-01'),
(3,'Колесников Борис Игнатьевич','2000-01-01'),
(4,'Королёв Ярослав Демьянович','2010-01-01'),
(5,'Алексеева Инесса Мартыновна','1970-01-01'),
(6,'Сидорова Изабелла Дамировна','2000-01-01'),
(7,'Беляева Лея Васильевна','2010-01-01'),
(8,'Стрелкова Магдалина Лаврентьевна','2020-01-01')

Так же имеется таблица с ролями этих людей в родственных связях (муж, жена, сын, дочь и т.д.)
CREATE TABLE SPR_ROLE
(
	[ID] INTEGER  NOT NULL,
	[ROLE_CODE] NVARCHAR(160) NULL,
	CONSTRAINT [PK_SprRole] PRIMARY KEY  ([ID])
)

Ее наполнение:
INSERT INTO SPR_ROLE (ID,ROLE_CODE) VALUES 
(1,'Муж'),
(2,'Жена'),
(3,'Сын'),
(4,'Дочь')

И есть таблица, в которой указано кто кому кем приходится:
CREATE TABLE PEOPLE_LINKS
(
	[ID] INTEGER  NOT NULL,
	[A_ID1] INTEGER NULL,
	[A_ID2] INTEGER NULL,
	[A_ROLE] INTEGER NULL,
	CONSTRAINT [PK_PeopleLinks] PRIMARY KEY  ([ID]),
	FOREIGN KEY ([A_ID1]) REFERENCES [PEOPLES] ([ID]),
	FOREIGN KEY ([A_ID2]) REFERENCES [PEOPLES] ([ID]),
	FOREIGN KEY ([A_ROLE]) REFERENCES [SPR_ROLE] ([ID])
)

И ее наполнение:
INSERT INTO PEOPLE_LINKS (ID,A_ID1,A_ID2,A_ROLE) VALUES 
(1,1,5,2),
(2,5,1,1),
(3,5,4,3),
(4,5,7,4),
(5,1,4,3),
(6,2,6,4)

Если читать ее напрямую получается что, у человека с ID=1 жена это человек с ID=5 и так далее.
Вопрос в том, чтобы разделить всю таблицу PEOPLE_LINKS на группы (семьи), и посчитать в каждой семье количество несовершеннолетних. Логично, что нужно заводить сущность "семья" вида:
CREATE TABLE FAMILYS
(
	[ID] INTEGER  NOT NULL,
	[MEMBER_ID] INTEGER NULL,
	[FAMILY_ID] INTEGER NULL,
	CONSTRAINT [PK_Familys] PRIMARY KEY  ([ID]),
	FOREIGN KEY ([MEMBER_ID]) REFERENCES [PEOPLES] ([ID])
)

Но я не понимаю как ее заполнить на основании таблицы PEOPLE_LINKS
  • Вопрос задан
  • 149 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы