Получите младшего ребенка от каждого родителя
Здравствуйте, я не очень хорошо знаком с TSQL. Я работал над решением и попал в проблему.
У меня есть такая структура таблицы:
CREATE TABLE Family ( Id INT NOT NULL PRIMARY KEY, MotherId INT REFERENCES Family(Id), FatherId INT REFERENCES Family(Id), Name VARCHAR(30) NOT NULL, Age INT NOT NULL );
С этой записью присутствующей в таблице:
INSERT INTO people(Id, MotherId, FatherId, Name, Age) VALUES(1, NULL, NULL, 'David', 65); INSERT INTO people(Id, MotherId, FatherId, Name, Age) VALUES(2, NULL, NULL, 'Keti', 55); INSERT INTO people(Id, MotherId, FatherId, Name, Age) VALUES(3, 2, 1, 'Crysti', 25); INSERT INTO people(Id, MotherId, FatherId, Name, Age) VALUES(4, 2, 1, 'Ellen', 18);
Чего я хочу добиться, так это получить самого младшего ребенка для каждого родителя. Как и в приведенном выше примере данных, ожидаемый результат должен быть:
Name Age ============= David 25 Keti 25
Заранее спасибо за вашу помощь.
Что я уже пробовал:
Я пробовал несколько решений, таких как Союзы, соединения, с CTE (...) и т.д. Но все напрасно. Как я уже упоминал ранее, я не являюсь экспертом в написании запросов TSQL.
Meysam Tolouee
Но младшему ребенку 18 лет, а не 25!