Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.06.06;
Скачать: CL | DM;

Вниз

Поиск и подсчет уникальных записей в связанных таблицах   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.01 c
1-18049
PEC
2002-05-21 12:33
2002.06.06
Я извиняюсь за вопрос не в тему, но всеже


3-17777
Катерина
2002-05-15 15:16
2002.06.06
Копироваие атрибутов поля


1-18007
Shoo
2002-05-24 10:08
2002.06.06
Переименовать все файлы в папке


1-18003
simps
2002-05-24 09:32
2002.06.06
Корень кубический


4-18188
ProNix
2002-04-03 16:48
2002.06.06
Как скрыть процесс в Win 2000