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