Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 3 986

/ вопрос открыт /

Здравствуйте, эксперты!
Подскажите, пожалуйста! Есть две таблицы БД. Одна Основная, вторая-подчиненна (например, в 1-ой поля: ФИО и поле Chislo, а во второй № телефона). Понятно, что номеров может быть много у одного «ФИО».
Вот вопрос можно ли как-нибудь сделать чтобы в поле «Chislo» основной таблицы отражалось количество телефонных номеров у определенного «ФИО»?
Пробовал посмотреть через вычисляемые поля, но не понял как это туда прикрутить.
Еще конечно можно цикл запустить со счетчиком, но может есть более «красивый» способ….
Заранее спасибо.

Вадим1979 Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Вадим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

Вадим1979 (статус: Посетитель), 7 апреля 2010, 20:25 [#1]:

Егор, а если не через SQL?
У меня AdoTable.
Там есть решение?
Егор

Егор (статус: 10-ый класс), 7 апреля 2010, 20:33 [#2]:

ну, можно использовать ADOQuery вместо ADOTable - разница не слишком велика.
не понимаю, чем мой вариант не подходит? я не настаиваю на своём решении, но не понимаю, в чём его недостаток.
вообще, что изначально нужно было получить?
Опасайтесь багов в приведенном выше коде; я только доказал корректность, но не запускал его.
— Donald E. Knuth.
Вадим1979

Вадим1979 (статус: Посетитель), 7 апреля 2010, 22:22 [#3]:

Вариант хороший, но я в SQL плаваю, по этому пока только ADOTable.
Получить нужно примерно следующее:
На форме DBGrid от Таблица1.
В DBGrid следующие поля:
ключ,ФИО,количество тел. номеров.
Количество тел. номеров берется из связанной (подчиненной) Таблица2 и соответствует числу номеров каждого ФИО.
Вот и все.
Вадим К

Вадим К (статус: Академик), 7 апреля 2010, 22:58 [#4]:

ну плаваете, и что с этого? ставьте ADOQuery, в свойство sql вписывайте запрос и подключайте в остальном как обычный Table. Всё.
Галочка "подтверждения прочтения" - вселенское зло.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:56
Выполнено за 0.02 сек.