Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Access
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.03.2016, 15:05   #1
superpsih
Пользователь
 
Регистрация: 14.11.2013
Сообщений: 74
По умолчанию Запрос по таблице связанной сама на себя

Есть таблица, в которую предполагается заносить, предположим, людей.
Задача - отследить всех потомков. Предполагается, что число потомков неизвестно а их количество у каждого пользователя своё, поэтому, делать таблицы (отец>сын>внук> и т.д) проблематично.
Заносим в таблицу человека и указываем кто отец в отдельном поле. По этому полю связь на Код его отца (см. relationship)
Как сделать запрос, отображающий всех предков и потомков для выбранного человека в одном столбце?
Т.е. после выбора в форме человека Иванов Иван Петрович запрос отображает его и его дочь.
После выбора Сидоров Алексей Сергеевич должен отобразиться его отец и дед.
Можно ли такой запрос сделать или это невозможно? И как правильно реализовывать такую задачу - одной таблицей или несколькими?
Изображения
Тип файла: png 2016-03-18 15-01-33 Скриншот экрана.png (3.1 Кб, 89 просмотров)
Вложения
Тип файла: zip 11.zip (33.5 Кб, 9 просмотров)
superpsih вне форума Ответить с цитированием
Старый 18.03.2016, 15:12   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

http://programmersforum.ru/showthread.php?t=275083
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 18.03.2016, 15:30   #3
superpsih
Пользователь
 
Регистрация: 14.11.2013
Сообщений: 74
По умолчанию

А в обычном конструкторе запросе можно это реализовать?
superpsih вне форума Ответить с цитированием
Старый 18.03.2016, 15:52   #4
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

from -- "первая" таблица
join --добавить таблицу (запрос)
left, on --параметры объединения
select --поля для показа
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 18.03.2016, 16:09   #5
superpsih
Пользователь
 
Регистрация: 14.11.2013
Сообщений: 74
По умолчанию

Всё-равно не понятно. parent.* - это что? Выделить поле parent в таблице t? Т.е. выделяется три поля (parent, t, сhild) в таблице t? Далее нам надо добавить ещё две эти же таблицы в конструкторе?
Получается по аналогии следующий код:
Код:
SELECT Table1.ID, Table1.FIO, Table1.properties, Table1.Parent
FROM Table1 AS Table1_1 LEFT JOIN (Table1 LEFT JOIN Table1 AS Table1_2 ON Table1.Parent = Table1_2.ID) ON Table1_1.Parent = Table1.ID
WHERE (((Table1.ID)=[Forms]![Table1]![Combo25]));
Который не даёт требуемого результата

Последний раз редактировалось superpsih; 18.03.2016 в 16:17.
superpsih вне форума Ответить с цитированием
Старый 18.03.2016, 16:39   #6
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Это одна таблица (просто она "переименована")
Таблица1 as detki (as deds)
Изображения
Тип файла: jpg 3.JPG (16.2 Кб, 57 просмотров)
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 18.03.2016, 16:48   #7
superpsih
Пользователь
 
Регистрация: 14.11.2013
Сообщений: 74
По умолчанию

Такой запрос:
Код:
SELECT child.*, grand_parent.*, parent.*
FROM Table1 AS child LEFT JOIN (Table1 AS parent LEFT JOIN Table1 AS grand_parent ON parent.Parent = grand_parent.ID) ON child.Parent = parent.ID
WHERE (((child.ID)=[Forms]![Table1]![Combo25]));
Позволяет увидеть кто родители, но это всё в разных столбцах. Мне нужно, чтобы люди были в одном столбце.
Update: Решил с помощью двух запросов. Во второй запрос вставляются в критерий значения из первого. Решение в архиве, если кому-то ещё понадобится. Выглядит как на скрине.
Изображения
Тип файла: jpg 2016-03-18 17-13-56 Скриншот экрана.jpg (15.5 Кб, 146 просмотров)
Вложения
Тип файла: zip 11.zip (34.9 Кб, 7 просмотров)

Последний раз редактировалось superpsih; 18.03.2016 в 17:15.
superpsih вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
таблица вложенная сама в себя Kate jstr Microsoft Office Access 6 23.08.2015 10:55
Нокиа сама себя закапывает hxt Свободное общение 1 22.01.2013 18:17
Ошибка : форма использует сама себя VITEBchANIN Общие вопросы Delphi 26 18.06.2010 02:49
Программа, выводящая сама себя Gorychev Общие вопросы Delphi 45 31.01.2010 02:45
Прога может удалить сама себя?? UnD)eaD)Snake Софт 5 18.08.2007 00:46