Главная страница
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-17908
Andrey PR
2002-05-27 13:42
2002.06.06
Изменение ширины символа


6-18097
dolphin
2002-03-26 03:29
2002.06.06
Люди, подскажите как программно определить есть ли файл на сайте.


1-17869
Vova33
2002-05-23 17:54
2002.06.06
Изменение размеров формы


1-17863
Tosha_a
2002-05-25 13:03
2002.06.06
изменение шрифта


1-17972
Yanval
2002-05-28 14:24
2002.06.06
открытие файла с помощью моей программы