powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Подсчет кол-ва одинаковых полей таблицы
10 сообщений из 10, страница 1 из 1
Подсчет кол-ва одинаковых полей таблицы
    #33039459
Федор_С
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все привет.

У меня загвоздка.

Есть такая таблица:

|КодПотребитель|ФамилияП| ИмяП |ОтчествоП|и еще n полей|
1 А Б В
2 Г Д Е
3 А Б В
4 А А А
5 А А А
6 А А А
7 А Б В
...

Поля таблицы заполнены соответствующе.
Мне надо сделать скидку каждому потребителю, который сделал заказ
более двух раз (Скидка= 0.5% цены продукта за 2 покупки; дальше скидка увеличивается на n раз).
Как получить следующее:
Потребитель: А.Б.В.
n=3
Потребитель: Г.Д.Е.
n=1
Потребитель: А.А.А.
n=3
...
Иначе говоря как можно вести подсчет кол-ва одинаковых полей в таблице?
...
Рейтинг: 0 / 0
Подсчет кол-ва одинаковых полей таблицы
    #33039472
bobit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В одной таблице не может быть двух одинаковых "полей", если под "полем" мы понимаем именно поле (имя столбца, в случае представления таблицы, как ряда столбцов). Поэтому я немного Вас и не понял. Что именно "множится"?
Из Вашего объяснения выходит, что надо по столбцам(полям) проверять, а из приведённого примера выходит, что по записям (строкам).
Если всё ж таки по строкам, то нельзя ли уточнить имеющееся и предполагаемое на ближайшее будущее общее количество записей в той таблице, пример которой Вы столь удачно привели? От этого много зависит. То есть, как посоветовать правильнее. Одно дело, если у Вас в той таблице не более 1000 записей ожидается, и совсем другое - это если за миллион.
...
Рейтинг: 0 / 0
Подсчет кол-ва одинаковых полей таблицы
    #33039568
Фотография neznajka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В любом случае, использование Select ... Group By ... Having здесь может здорово помочь.
Подробнее - http://khpi-iip.mipk.kharkiv.edu/library/dbms/kir2/2-5.html
а также - http://khpi-iip.mipk.kharkiv.edu/library/dbms/kir2/3-6.html
...
Рейтинг: 0 / 0
Подсчет кол-ва одинаковых полей таблицы
    #33041209
Федор_С
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
To bobit:
Извените за неграмотно описанную ситуацию.
Попробую еще раз:
1). И так, есть таблица:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
-------------------------------------------------------------------
П- потребитель
|КодП|ФамилияП| ИмяП |ОтчествоП|и еще n полей|
    1     А         Б       В
    2     А         Г       Е
    3     Г         Б       Ж
    4     А         Б       В
    5     А         Б       В
    6     А         Б       В
    7     А         Г       Е
...
--------------------------------------------------------------------
2). Записей в таблице <=3000
Надо посчитать сколько раз Потребитель А.Б.В. встречается в таблице, сколько
раз Потребитель А.Г.Е. встречается в таблице, сколько раз Потребитель Г.Б.Ж. встречается в таблице и так по каждому потребителю.

To neznajka:
Спасибо за ссылочки, сейчас почитаю!
...
Рейтинг: 0 / 0
Подсчет кол-ва одинаковых полей таблицы
    #33041291
гость33
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
SELECT ФамилияП, ИмяП, ОтчествоП, COUNT(*) AS СколькоРаз FROM таблица GROUP BY ФамилияП, ИмяП, ОтчествоП
...
Рейтинг: 0 / 0
Подсчет кол-ва одинаковых полей таблицы
    #33041678
Фотография neznajka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Один нюанс:
Необходимо, чтобы Ф.И.О каждого клиента вводилось строго ОДНООБРАЗНО, т.е., скажем, отчество ВИТАЛЬЕВИЧ и ВИТАЛИЕВИЧ должно иметь только ОДИН вариант ввода, иначе запрос сгруппирует этого клиента как 2-х совершенно разных людей. А если учесть все возможные варианты написания фамилий, то там вообще тушите свет! Простейшим способом обойти это не удасться. Придется написать код, который будет сверять приблизительное подобие вводимой информации с уже введенной и предлагать право выбора оператору при хотябы относительной похожести. Трудновато придется при разработке такого кода, знаю по своим разработкам аналогичного назначения. Но если этого не сделать - запросто может получиться, что постоянный клиент недополучит скидки :(
...
Рейтинг: 0 / 0
Подсчет кол-ва одинаковых полей таблицы
    #33041909
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi neznajka!

Нужно не со следствием бороться, а с причиной - такая таблица должна быть нормальзована - для этого создаётся дополнительная таблица - справочник потребителей - туда выносятся поля касающиеся собственно потребителя (НЕ его покупок!) - в частности ФИО - и вводится поле ключа - код_потребителя. Это-же поле вносится в основную таблицу вместо полей ФИО - по ним и идёт связь. тогда описанные аномалии отсутствуют, ибо одно ФИО вводится всего 1 раз - потом лишь "используется" уже введённое.

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
Подсчет кол-ва одинаковых полей таблицы
    #33042451
leaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь правили сказал почитайте про нормализацию таблиц
и еще если не трудно скажите что это за штука
КодПотребитель в вашей таблице и почему она разная для одного и того же потребителя?
...
Рейтинг: 0 / 0
Подсчет кол-ва одинаковых полей таблицы
    #33043395
Фотография neznajka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да я не против нормализации :) Просто вы, Игорь, сами же из двуязычного региона, и безусловно знаете, сколькими разными способами юзеры умудряются ввести одну и ту же фамилию, имя, отчество. И в каком бы файле они ни находились - в справочном или в общем - процедура сверки все равно необходима. А сверяться-то будет вводимая полуграмотным юзером информация. И один Бог наперед знает, насколько правильно он ее введет. А, следовательно, и результат сверки и отождествления(идентификации) клиента вовсе не гарантируется на 100%. Именно поэтому я для себя когда-то написал процедуру выборки, которая выбирает те записи, в которых хотя бы 75% символов (задаваемая величина) в контролируемом поле совпадает с введенным пользователем сомнительным "образцом". А затем уже из предъявленного множества "подобий" по дополнительным полям можно сориентироваться, тот ли самый это клиент или нет. Может, это и кустарщина, зато в моих базах теперь действительно редко появляются "необоснованные дубли"
...
Рейтинг: 0 / 0
Подсчет кол-ва одинаковых полей таблицы
    #33044132
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi neznajka!

> Да я не против нормализации

Вот и славно :) Конечно проблемы всегда были, есть и будут - если информация критически важна - то работает специальный человек, который и отлавливает подобные ошибки - ему конечно нужны инструменты, и скорее всего даже более сложные - что-то типа Soundex - проверки фонетической "схожести"...
Но это вторично - если структура ненормализована, то это слабо поможет...

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Подсчет кол-ва одинаковых полей таблицы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]