|
|
|
Подсчет кол-ва одинаковых полей таблицы
|
|||
|---|---|---|---|
|
#18+
Все привет. У меня загвоздка. Есть такая таблица: |КодПотребитель|ФамилияП| ИмяП |ОтчествоП|и еще n полей| 1 А Б В 2 Г Д Е 3 А Б В 4 А А А 5 А А А 6 А А А 7 А Б В ... Поля таблицы заполнены соответствующе. Мне надо сделать скидку каждому потребителю, который сделал заказ более двух раз (Скидка= 0.5% цены продукта за 2 покупки; дальше скидка увеличивается на n раз). Как получить следующее: Потребитель: А.Б.В. n=3 Потребитель: Г.Д.Е. n=1 Потребитель: А.А.А. n=3 ... Иначе говоря как можно вести подсчет кол-ва одинаковых полей в таблице? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2005, 23:06 |
|
||
|
Подсчет кол-ва одинаковых полей таблицы
|
|||
|---|---|---|---|
|
#18+
В одной таблице не может быть двух одинаковых "полей", если под "полем" мы понимаем именно поле (имя столбца, в случае представления таблицы, как ряда столбцов). Поэтому я немного Вас и не понял. Что именно "множится"? Из Вашего объяснения выходит, что надо по столбцам(полям) проверять, а из приведённого примера выходит, что по записям (строкам). Если всё ж таки по строкам, то нельзя ли уточнить имеющееся и предполагаемое на ближайшее будущее общее количество записей в той таблице, пример которой Вы столь удачно привели? От этого много зависит. То есть, как посоветовать правильнее. Одно дело, если у Вас в той таблице не более 1000 записей ожидается, и совсем другое - это если за миллион. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2005, 23:23 |
|
||
|
Подсчет кол-ва одинаковых полей таблицы
|
|||
|---|---|---|---|
|
#18+
В любом случае, использование 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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2005, 02:06 |
|
||
|
Подсчет кол-ва одинаковых полей таблицы
|
|||
|---|---|---|---|
|
#18+
To bobit: Извените за неграмотно описанную ситуацию. Попробую еще раз: 1). И так, есть таблица: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Надо посчитать сколько раз Потребитель А.Б.В. встречается в таблице, сколько раз Потребитель А.Г.Е. встречается в таблице, сколько раз Потребитель Г.Б.Ж. встречается в таблице и так по каждому потребителю. To neznajka: Спасибо за ссылочки, сейчас почитаю! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2005, 17:14 |
|
||
|
Подсчет кол-ва одинаковых полей таблицы
|
|||
|---|---|---|---|
|
#18+
Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2005, 17:34 |
|
||
|
Подсчет кол-ва одинаковых полей таблицы
|
|||
|---|---|---|---|
|
#18+
Один нюанс: Необходимо, чтобы Ф.И.О каждого клиента вводилось строго ОДНООБРАЗНО, т.е., скажем, отчество ВИТАЛЬЕВИЧ и ВИТАЛИЕВИЧ должно иметь только ОДИН вариант ввода, иначе запрос сгруппирует этого клиента как 2-х совершенно разных людей. А если учесть все возможные варианты написания фамилий, то там вообще тушите свет! Простейшим способом обойти это не удасться. Придется написать код, который будет сверять приблизительное подобие вводимой информации с уже введенной и предлагать право выбора оператору при хотябы относительной похожести. Трудновато придется при разработке такого кода, знаю по своим разработкам аналогичного назначения. Но если этого не сделать - запросто может получиться, что постоянный клиент недополучит скидки :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2005, 20:07 |
|
||
|
Подсчет кол-ва одинаковых полей таблицы
|
|||
|---|---|---|---|
|
#18+
Hi neznajka! Нужно не со следствием бороться, а с причиной - такая таблица должна быть нормальзована - для этого создаётся дополнительная таблица - справочник потребителей - туда выносятся поля касающиеся собственно потребителя (НЕ его покупок!) - в частности ФИО - и вводится поле ключа - код_потребителя. Это-же поле вносится в основную таблицу вместо полей ФИО - по ним и идёт связь. тогда описанные аномалии отсутствуют, ибо одно ФИО вводится всего 1 раз - потом лишь "используется" уже введённое. Posted via ActualForum NNTP Server 1.1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2005, 02:56 |
|
||
|
Подсчет кол-ва одинаковых полей таблицы
|
|||
|---|---|---|---|
|
#18+
Игорь правили сказал почитайте про нормализацию таблиц и еще если не трудно скажите что это за штука КодПотребитель в вашей таблице и почему она разная для одного и того же потребителя? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2005, 11:50 |
|
||
|
Подсчет кол-ва одинаковых полей таблицы
|
|||
|---|---|---|---|
|
#18+
Да я не против нормализации :) Просто вы, Игорь, сами же из двуязычного региона, и безусловно знаете, сколькими разными способами юзеры умудряются ввести одну и ту же фамилию, имя, отчество. И в каком бы файле они ни находились - в справочном или в общем - процедура сверки все равно необходима. А сверяться-то будет вводимая полуграмотным юзером информация. И один Бог наперед знает, насколько правильно он ее введет. А, следовательно, и результат сверки и отождествления(идентификации) клиента вовсе не гарантируется на 100%. Именно поэтому я для себя когда-то написал процедуру выборки, которая выбирает те записи, в которых хотя бы 75% символов (задаваемая величина) в контролируемом поле совпадает с введенным пользователем сомнительным "образцом". А затем уже из предъявленного множества "подобий" по дополнительным полям можно сориентироваться, тот ли самый это клиент или нет. Может, это и кустарщина, зато в моих базах теперь действительно редко появляются "необоснованные дубли" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2005, 17:13 |
|
||
|
Подсчет кол-ва одинаковых полей таблицы
|
|||
|---|---|---|---|
|
#18+
Hi neznajka! > Да я не против нормализации Вот и славно :) Конечно проблемы всегда были, есть и будут - если информация критически важна - то работает специальный человек, который и отлавливает подобные ошибки - ему конечно нужны инструменты, и скорее всего даже более сложные - что-то типа Soundex - проверки фонетической "схожести"... Но это вторично - если структура ненормализована, то это слабо поможет... Posted via ActualForum NNTP Server 1.1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2005, 19:43 |
|
||
|
|

start [/forum/topic.php?fid=41&tid=1594313]: |
0ms |
get settings: |
4ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
53ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
31ms |
get tp. blocked users: |
1ms |
| others: | 209ms |
| total: | 323ms |

| 0 / 0 |
