|
Вопрос # 3 986/ вопрос открыт / |
|
Здравствуйте, эксперты!
Подскажите, пожалуйста! Есть две таблицы БД. Одна Основная, вторая-подчиненна (например, в 1-ой поля: ФИО и поле Chislo, а во второй № телефона). Понятно, что номеров может быть много у одного «ФИО».
Вот вопрос можно ли как-нибудь сделать чтобы в поле «Chislo» основной таблицы отражалось количество телефонных номеров у определенного «ФИО»?
Пробовал посмотреть через вычисляемые поля, но не понял как это туда прикрутить.
Еще конечно можно цикл запустить со счетчиком, но может есть более «красивый» способ….
Заранее спасибо.
 |
Вопрос задал: Вадим1979 (статус: Посетитель)
Вопрос отправлен: 6 апреля 2010, 19:09
Состояние вопроса: открыт, ответов: 1.
|
Ответ #1. Отвечает эксперт: Егор
Здравствуйте, Вадим1979!
Делается это с помощью запроса SQL:
SELECT Таблица1.ФИО, Count(Таблица2.Телефон) AS [Count-Телефон]
FROM Таблица1 INNER JOIN Таблица2 ON Таблица1.id = Таблица2.id
GROUP BY Таблица1.ФИО;
В MS Access проверял, работает.
Если что непонятно - спрашивайте в минифоруме.
 |
Ответ отправил: Егор (статус: 10-ый класс)
Время отправки: 7 апреля 2010, 05:19
Оценка за ответ: 5
|
Мини-форум вопроса
Всего сообщений: 4; последнее сообщение — 7 апреля 2010, 22:58; участников в обсуждении: 3.
|
Вадим1979 (статус: Посетитель), 7 апреля 2010, 20:25 [#1]:
Егор, а если не через SQL?
У меня AdoTable.
Там есть решение?
|
|
Егор (статус: 10-ый класс), 7 апреля 2010, 20:33 [#2]:
ну, можно использовать ADOQuery вместо ADOTable - разница не слишком велика.
не понимаю, чем мой вариант не подходит? я не настаиваю на своём решении, но не понимаю, в чём его недостаток.
вообще, что изначально нужно было получить?
Опасайтесь багов в приведенном выше коде; я только доказал корректность, но не запускал его.
— Donald E. Knuth.
|
|
Вадим1979 (статус: Посетитель), 7 апреля 2010, 22:22 [#3]:
Вариант хороший, но я в SQL плаваю, по этому пока только ADOTable.
Получить нужно примерно следующее:
На форме DBGrid от Таблица1.
В DBGrid следующие поля:
ключ,ФИО,количество тел. номеров.
Количество тел. номеров берется из связанной (подчиненной) Таблица2 и соответствует числу номеров каждого ФИО.
Вот и все.
|
|
Вадим К (статус: Академик), 7 апреля 2010, 22:58 [#4]:
ну плаваете, и что с этого? ставьте ADOQuery, в свойство sql вписывайте запрос и подключайте в остальном как обычный Table. Всё.
Галочка "подтверждения прочтения" - вселенское зло.
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|