То, что вы описали, является проблемой взрыва деталей. Когда я учился в университете, это было то, что не могло быть решено с помощью реляционных баз данных, и было одним из главных преимуществ продажи объектно-ориентированных баз данных. Похоже, что сейчас все может измениться, в зависимости от того, какую БД вы используете.
Эта страница выглядит интересно
Руководство пользователя Sql Anywhere - проблемы взрыва деталей , но, к сожалению, вы не упомянули, какую СУБД вы использовали. Он также поддерживается SQL Server 2005, так что, возможно, вам повезет. Попробуйте найти «Рекурсивные SQL-запросы» и любую используемую вами БД.
Удачи