Форум » [x]Harbour » Как посчитать кол-во записей в базе по условию ? » Ответить

Как посчитать кол-во записей в базе по условию ?

Andrey: Всем привет ! Имеется база адресов договоров. Город+Улица+Дом+Корпус+Подъезд Подъезды могут быть несколько одинаковых в базе. Как быстро можно посчитать: 1) Кол-во домов в базе 2) Кол-во подъездов в базе. Делать условный индекс по базе придётся всё равно, так как есть ещё доп.условие Статус=1 и Тип=2 .AND. !DELETED() Подсчёт в цикле по базе могу сам сделать. Просто как ещё можно реализовать счёт ?

Ответов - 6

nick_mi: Если индекс уникальный, можно ORDKEYCOUNT

SergKis: Andrey пишет как ещё можно реализовать счёт ? Уникальный индекс (отсечет Status, Type и ...) даст при установке + scope по OrdKeyCount():[pre2] - Город+Улица+Дом+Корпус+Подъезд+Квартира -> кол-во квартир - Город+Улица+Дом+Корпус+Подъезд -> кол-во подъездов - Город+Улица+Дом+Корпус -> кол-во корпусов - Город+Улица+Дом -> кол-во домов ... [/pre2]

SergKis: PS коментарии сдвинуть на строку вниз, 1 стр. это индекс


Andrey: Засада ! Ещё оказывается нужно просчитать сумму по доп.условию. Получается что лучше делать простым перебором в цикле. Так хоть можно за один проход по базе просчитать.

SergKis: Andrey пишет нужно просчитать сумму по доп.условию Может надо постоянный индекс иметь: Город+Улица+Дом+Корпус+Подъезд+Квартира+Type+Status и использовать для быстрых выборок ставя Scope и Filter

Andrey: SergKis пишет: Может надо постоянный индекс иметь: Да нет, это месячный отчёт. Раз в месяц нужно считать. Пойдёт и медленный счёт и так уж этих индексов полно держу. На каждую основную базу 7-8 индексов.



полная версия страницы