|
значения нескольких полей посчитать
|
|||
---|---|---|---|
#18+
Всем здравствуйте и не болейте! Прошу помочь по возможности. Я даже не знаю как было бы правильнее тему для моего вопроса назвать. Конечно же с такими дурацкими вопросами может обратиться только самоучка как я, но книжки стараюсь читать))) В старой-старой базе есть таблица, в которой хранятся условия ID заказчика и последовательное НЕОПРЕДЕЛЕННОЕ кол-во булевых полей с названиями регионов. Сейчас понадобилось выводить данные о кол-ве активных регионов у каждого ID. Через DAO циклом по всем полям я запросто могу произвести обсчет и вывести в результирующую таблицу, но проще напрячься и заняться полной переделкой баз, в которых задействован такой старый и кривой метод хранения исходных значений условий. Времени как обычно на это нет несмотря даже на карантин. Очень хотелось одним запросом, или комплексом запросов, без применения VBA вывести необходимое в таком виде (названия регионов не нужны): ID REGIONS 9 2 12 3 14 1 16 4 Возможно ли вообще такое при условии, что конечное кол-во полей с регионами неизвестно т.е. может меняться становиться как меньше, так и больше (в базе пользователи могут удалять регион, а могут и добавить новый). Я естественно облазил пол-интернета и пролистал весь форум здесь по критерию "значения нескольких полей" и т.п. - безрезультатно. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2020, 21:57 |
|
значения нескольких полей посчитать
|
|||
---|---|---|---|
#18+
А не проще выложить БД с таблицей? всё лишнее поудалять (включая референсы), оставив десяток записей, сжать-зипануть-приложить тут к сообщению. Ну и показать вручную созданный желаемый результат для именно оставленных в БД данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2020, 23:15 |
|
значения нескольких полей посчитать
|
|||
---|---|---|---|
#18+
Формально - нечто типа Код: vbnet 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2020, 23:17 |
|
значения нескольких полей посчитать
|
|||
---|---|---|---|
#18+
kulib, Код: sql 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2020, 23:27 |
|
значения нескольких полей посчитать
|
|||
---|---|---|---|
#18+
vmag, Ну да... *1 наверно лишнее... ну или вынести 1 за скобки, а потом убрать/сократить... ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2020, 23:32 |
|
значения нескольких полей посчитать
|
|||
---|---|---|---|
#18+
Я так долго соображал какого х.ра в примере 9 2 вместо 9 1 и 12 3 вместо 12 4, что забыл про оптимизацию... ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2020, 23:37 |
|
значения нескольких полей посчитать
|
|||
---|---|---|---|
#18+
kulib ....но проще напрячься и заняться полной переделкой баз, в которых задействован такой старый и кривой метод хранения исходных значений условий. (а если населенных пунктов будет больше 256?) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2020, 00:21 |
|
значения нескольких полей посчитать
|
|||
---|---|---|---|
#18+
kulib Очень хотелось одним запросом, или комплексом запросов, без применения VBA вывести необходимое kulib Через DAO циклом по всем полям я запросто могу произвести обсчет и вывести в результирующую таблицу kulib но проще напрячься и заняться полной переделкой баз, в которых задействован такой старый и кривой метод хранения исходных значений условий. Времени как обычно на это нет 1 Создать таблицы "Справочник регионов" (ID-счетчик, Название) и "Регионы клиентов" (ID клиента, ID региона, возможно флажок и пр.). 2. Наваять процедуру с тремя Recordset-ми, в которой в цикле по полям 1-й записи заполнить "Справочник регионов", а то же для каждой записи - заполнить "Регионы клиентов". Процедура небольшая, выполняется 1 раз. 3. В завершение - из вашей таблицы удалить все булевы поля и переименовать в "Справочник клиентов" (а если он уже есть - просто удалить таблицу.) На всё - максимум полдня. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2020, 12:18 |
|
значения нескольких полей посчитать
|
|||
---|---|---|---|
#18+
Спасибо всем, кто откликнулся! Я подозревал на 99%, что действительно идея патовая. Суммировать значения полей можно конечно запросто (как предлагают некоторые и это реализовано), основная проблема в том, что кол-во регионов уменьшается и увеличивается и если статично задать условие типа [p1]+[p2]+[p3], то в любом случае возникнет ошибка когда нет например [p3] (редко но всё же), или будет неправильный подсчёт при появлении нового [p4] (оно не посчитается т.к. его нет). Придется собраться с мыслями и приступить к масштабной переделке. P.S. Да ну и конечно превышение 256 полей маловероятно, но всё же есть((( ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2020, 13:09 |
|
значения нескольких полей посчитать
|
|||
---|---|---|---|
#18+
Кривцов Анатолий kulib Через DAO циклом по всем полям я запросто могу произвести обсчет и вывести в результирующую таблицу Сделал всё-таки по-быстренькому функцию и продолжил свои карантикулы))) Если кто такой же есть как я, смотрите пример, мало-ли пригодится! Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
P.S. Но переделывать когда-то всё равно придется. Хоть бы не мне) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2020, 22:41 |
|
|
start [/forum/topic.php?fid=45&fpage=19&tid=1610155]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
42ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 152ms |
0 / 0 |