![]() |
| Здравствуйте, Гость ( Вход | Регистрация | Что даёт регистрация на форуме? ) | Восстановить пароль | Выслать повторно письмо для активации |
![]() |
|
Модераторы: Akina |
![]()
|
|
||
|
| FINANSIST |
|
||||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 387 Друзей: 0; Групп: 0 Регистрация: 11.4.2008 Где: Москва Репутация: 1 Всего: 13 |
Есть таблица
Хочу составить товарный рейтинг отгрузки, отсортированный по убыванию, с долей отгрузок по каждой группе товаров т.е. следующий запрос (назовём его "Запрос2")
Оформил отчётом ![]() Вот только проблема в том, что нужен рейтинг только первых 80% Как отсортировать в отчёте поле "Доля нарастающим итогом до 80%" я не знаю, потому решил вводить в запрос пользовательскую функцию, рассчитывающую нарастающий итог по отгрузке и воткнуть по этой функции (преобразовав нар.итог в долю) условие where
Соответственно , что бы промежутоные итоги не посчитались в процессе групировки 2 и более раз, подключаю пользовательскую функцию в запрос не от исходной таблицы а от запроса с уже сгруппированными данными (Запрос2)
Рабоатет нормально ![]() Пока не накладываю ограничение WHERE (((growsum([Запрос2]![Доля]))<=0.8)); Заметил, что функция выдаёт долю в текстовом формате (выравнивание в столбце - по левому краю): Домножил в запросе функцию на единицу ( преобразовалась в число), однако проблема не решилась Нуждаюсь в совете, как быть ps глупости вроде "попробуй select top 80 percent " не предлагать Это сообщение отредактировал(а) FINANSIST - 19.3.2009, 22:54 -------------------- “...Брали корову рыжую одну, отдавать будем корову рыжую одну, чтобы не нарушать отчетности” Эдуард Успенский, “Каникулы в Простоквашино” Мой 10-дневный весенний сплав по Угре |
||||||||
|
|||||||||
| bopoha |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1052 Друзей: 0; Групп: 0 Регистрация: 10.5.2006 Где: Беларусь, Минск Репутация: 14 Всего: 14 |
1. Записать результат запроса во временную таблицу. Фильтровать уже по ней.
2. В отчете на событии Print скрывать область данных, если доля > 80 процентов.
Почему глупости? Не работает? Это же самый простой вариант решения данной задачи. |
|||
|
||||
| Akina (Online) |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 13300 Друзей: 0; Групп: 0 Регистрация: 8.4.2004 Где: Зеленоград, Москв а, Россия Репутация: 25 Всего: 238 |
Это не решает задачу, ибо отбирает 80% записей, а не записи со значением поля менее/более 80% -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| FINANSIST |
|
||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 387 Друзей: 0; Групп: 0 Регистрация: 11.4.2008 Где: Москва Репутация: 1 Всего: 13 |
С временной таблицей то всё работает, но это кривое решение. Так и не понял почему, ограничение where .... <=0,8 при обращении напрямую к запросу 2
Выдаёт хрень Самое простое решение, это фильтровать записи уже в отчёте, но я не знаю как Базу прикреплю на всякий случай Это сообщение отредактировал(а) FINANSIST - 22.3.2009, 16:09 Присоединённый файл ( Кол-во скачиваний: 4 )
QWE________.rar 18,05 Kb-------------------- “...Брали корову рыжую одну, отдавать будем корову рыжую одну, чтобы не нарушать отчетности” Эдуард Успенский, “Каникулы в Простоквашино” Мой 10-дневный весенний сплав по Угре |
||||||
|
|||||||
| bopoha |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1052 Друзей: 0; Групп: 0 Регистрация: 10.5.2006 Где: Беларусь, Минск Репутация: 14 Всего: 14 |
FINANSIST, есть подозрения, что хрень выдает из-за повторяющегося вызова growsum. Попробуйте убрать вызов в предложении SELECT.
Данное высказывание требует аргументации. Я так не думаю, читать тут. P.S. Спасибо за тему. |
|||
|
||||
|
||||
|
|
|
|||
|
||||
![]()
|
| Правила форума "MS Access" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | MS Access | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Хостинг: Vingrad Hosting Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |
![]() |