Форум: "Базы";
Текущий архив: 2002.06.06;
Скачать: [xml.tar.bz2];
ВнизПоиск и подсчет уникальных записей в связанных таблицах Найти похожие ветки
← →
RDA (2002-05-16 20:55) [0]Уважаемые мастера, срочно нужна ваша помощь.
Ситуация следующая. Есть две связанные таблицы. Отношение
один ко многим. Подскажите как по определенному критерию (определенному в дочерней таблице) выбрать уникальные записи в родительской таблице.
К примеру:
Есть клиент (Родительская таблица)- он один.
Есть обращение клиента (Дочерняя таблица) их за месяц 10 (все по разному поводу - информационные услуги, социальная помощь и т.д.) как выбрать сколько за месяц обратилось уникальных клиентов за информационными услугами (если один и тот же клиент может обратиться за месяц 10 раз только за информационными услугами, а может и нет). Уф...
Заранее благодарен любым предложениям. А может есть и стандартный подход.
← →
ioSan (2002-05-17 03:48) [1]Александр, посмотри может что пригодится.
На примерах, с использованием Query.
Описание таблиц
Clients.dbf
------------------
ID_C CLIENT
------------------
1 Петров П.
2 Сидоров С.
3 Иванов И.
------------------
Uslugi.dbf
-----------------------------------
ID_C MES USLUGA
-----------------------------------
3 4 информационные услуги
1 5 информационные услуги
1 5 социальная помощь
1 5 информационные услуги
2 5 информационные услуги
3 5 социальная помощь
-----------------------------------
* чтоб было видно что выборка за месяц мы добавили 4 месяц.
Вопрос 1:
>> Подскажите как по определенному критерию
>> (определенному в дочерней таблице) выбрать уникальные
>> записи в родительской таблице.
Делаем выборку: "MES = 5" и "USLUGA = информационные услуги"
Это получилось стандартным SQL Builder`ем
SELECT Clients.client, Uslugi.USLUGA, COUNT( Uslugi.id_c ) counter
FROM Clients
INNER JOIN "uslugi.DBF" Uslugi
ON (Clients.ID_C = Uslugi.id_c)
WHERE (Uslugi.mes = 5)
AND (Uslugi.usluga = "информационные услуги")
GROUP BY Clients.client, Uslugi.USLUGA
HAVING COUNT( Uslugi.id_c ) > 0
Результат:
-------------------------------------------
CLIENT USLUGA COUNTER
-------------------------------------------
Петров П. информационные услуги 2
Сидоров С. информационные услуги 1
-------------------------------------------
Петров обращался аж 2 раза!))
Вопрос 2:
>> как выбрать сколько за месяц обратилось
>> уникальных клиентов за информационными услугами
Query1.RecordCount
Надеюсь все понятно, как пример.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.06.06;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.006 c