![]() |
|
|
![]()
|
|
| Акимыч |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 41 Регистрация: 4.6.2006 Где: Владимир Репутация: 1 Всего: 1 |
Имеется запрос, который приляпан к ADOQuery:
Необходимо посчитать количество id_person (причем только уникальные значения, что-то типа distinct' а), bl_id, сумму days Всю голову сломал!!! Кстати запрос динамический и постоянно меняется путем добавления условий (WHERE) Поможите, люди добрые! Это сообщение отредактировал(а) Акимыч - 11.7.2008, 14:03 |
|||
|
||||
| Frees |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2233 Регистрация: 2.12.2005 Где: Екатеринбург Репутация: 23 Всего: 54 |
в один запрос можно положит() но это криво будет, лучше 2 отдельных запроса или сохраенка
-------------------- Кольцов Виктор Владимирович |
|||
|
||||
| Vas |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 830 Регистрация: 29.6.2005 Где: Stavropol region Репутация: 23 Всего: 28 |
Не понял что считать то, у вас в запрос в каждой строке будет одинаковый PERSON_ID в обоих столбцах, у Вас по ним связь в таблицах сделана. Или я что-то не догоняю?
-------------------- И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин) |
|||
|
||||
| Акимыч |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 41 Регистрация: 4.6.2006 Где: Владимир Репутация: 1 Всего: 1 |
Да, наверное я криво объяснил... В общем ситуация такая, на форме есть EhLib грид, куда собственно данные и выводятся. В футер этого грида нужно вывести: 1) количество уникальных значений ID_PERSON (т.е. кол-во человек, которые дает выборка) любого столбца, хоть из VIEW_PERSON, хоть из VIEW_BL; 2) количество BL_ID, (т.е. количество документов выданных отобранным людям), вот сдесь то все просто, просто считаю кол-во записей 3) сумму дней DAYS в выборке, тоже просто Второе и третье делаю с помощью футера ехлибовского грида, все хорошо, а вот с первым косяк. Сейчас сделал отдельный запрос где с помощью SELECT DISTINCT ID_PERSON FROM VIEW_PERSON WHERE, дальше добавляю условия отбора из основного запроса, считаю количество людей... Но если запрос работает на нескольких сотнях тысяч записей, то это слегка долго... Так вот ВОПРОС: как это всё можно упростить?!?!? Кодом, компоненами, запросом? Ваши предложения! |
|||
|
||||
| Vas |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 830 Регистрация: 29.6.2005 Где: Stavropol region Репутация: 23 Всего: 28 |
Сделать так чтобы distinсt не использовался, выбор ускорится раза в два. При нормально построенной БД distinct по существу никогда не используется, так что смотрите связи таблиц в вашей БД и к 3 НФ ее приводите.
-------------------- И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин) |
|||
|
||||
![]()
|
| Правила форума "Delphi: Базы данных и репортинг" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |