Текущее время: Пт, авг 29 2025, 10:21

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 10 ] 
Автор Сообщение
 Заголовок сообщения: Задачка для BEx
СообщениеДобавлено: Сб, дек 08 2007, 18:33 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, фев 16 2006, 15:46
Сообщения: 451
Откуда: Россия
Здравствуйте! Нужна помощь, как наиболее просто и эффективно можно при помощи BEx решить такую задачу. Я её опишу абстрактно, чтобы было проще.

Допустим есть куб с признаками "ФИО работника", "инвалидность", "пол", "год рождения" и показателем "Зарплата за месяц".

Задача ставится так: нужно сделать две развёртки. Каждая по признаку "год рождения". В одну из них должны попасть все инвалиды с зарплатой меньше 1000 рублей в месяц а также все инвалиды-женщины (даже если больше 1000 рублей).

В другую развёртку - все остальные, кто не попал в первую.

Написать макрос с развёрткой по ФИО нельзя, так как их больше 65 тысяч.

"Зарплата за месяц" - показатель, можно ограничивать только условиями.

Скажите, как быть в данной ситуации? Как можно быстро превратить показатель в признак

_________________
Ян Владимирович,
http://www.vladimirovich.net


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вс, дек 09 2007, 15:49 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, окт 11 2005, 12:10
Сообщения: 687
Откуда: Москва
Пол: Мужской
Про показатель сделать признаком -- это проще всего при загрузке. И сделать зарплату временнозависимым атрибутом навигации работника. Можно и старые данные перегрузить при этом.

если без признака:
Чем не устраивают условия? Вроде бы с их помощью можно сделать все что нужно.

_________________
Глаза боятся, а руки крюки


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вс, дек 09 2007, 16:11 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, фев 16 2006, 15:46
Сообщения: 451
Откуда: Россия
При загрузке потребуется перегрузка данных, предположим, за год. А можно ли это сделать атрибутом навигации к, скажем, фамилии? Зависимым от времени.

Чтобы потом просто включить его в развёртку, и всё.

Условия не устраивают тем, что потребуется писать не один запрос а три. Получается три места где нужно искать ошибки и так далее (я упростил задачу, на практике она сложнее и ошибится, понятно, есть где).

_________________
Ян Владимирович,
http://www.vladimirovich.net


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вс, дек 09 2007, 22:23 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, окт 11 2005, 12:10
Сообщения: 687
Откуда: Москва
Пол: Мужской
Yanvladimirovich написал(а):
При загрузке потребуется перегрузка данных, предположим, за год.

Ну можно из самого куба прогрузить.

Yanvladimirovich написал(а):
А можно ли это сделать атрибутом навигации к, скажем, фамилии? Зависимым от времени.
Чтобы потом просто включить его в развёртку, и всё.

Можно.
Только сущность "фамилия" мне кажется странной. Поскольку не может у всех Ивановых быть одинаковая зарплата в один момент времени.


Yanvladimirovich написал(а):
Условия не устраивают тем, что потребуется писать не один запрос а три. Получается три места где нужно искать ошибки и так далее (я упростил задачу, на практике она сложнее и ошибится, понятно, есть где).

Зато не надо структуру кубов и признаков перекраивать.
Да и сложным получается только основной запрос.
Вспомогательные довольно просты (мне кажется только один будет - мужчины-инвалиды с ЗП < 1000), всех женщин-инвалидов можно простым путем замены получить.

Итог:
Если есть возможность сделать атрибутом - делай. Но мне кажется, что будет непросто получить список на дату факта в кубе (хотя и с предзапросом тоже не все гладко).

_________________
Глаза боятся, а руки крюки


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, дек 10 2007, 17:31 
Начинающий
Начинающий

Зарегистрирован:
Пн, дек 10 2007, 16:42
Сообщения: 9
Решение из разряда извращений, но иногда может быть и эффективным:
вычисляемый до агрегации показатель типа (ЗП < 1000) * ЗП. Т.е. обнуление тех, кто "меньше 1000". Потом вывод с подавлением нулей. Либо просто вывод с условием (Condition) ЗП>=1000, но нужно чтобы не было агрегации


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, дек 10 2007, 18:06 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, окт 11 2005, 12:10
Сообщения: 687
Откуда: Москва
Пол: Мужской
BWис написал(а):
вычисляемый до агрегации показатель типа (ЗП < 1000) * ЗП


Тогда уж:
ИНВАЛИД=1 AND ((ЗП < 1000 AND ПОЛ="М") OR (ПОЛ = "Ж")) * ЗП

и условие, что РП > 0

_________________
Глаза боятся, а руки крюки


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, дек 13 2007, 09:10 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, фев 16 2006, 15:46
Сообщения: 451
Откуда: Россия
Если кому интересно.

Сделали (пока) на основе технологии "запрос в переменную" (переменная-путь замены-запрос). Вторую развёртку получаем в excel путём вычитания развертки с условием из развёртки без условия, функцией ВПР по ключу СЦЕПИТЬ( ... , ... ).

Работает, хотя сильно через одно место. Медленно. Очень медленно.

Вероятно, действительно нужно делать на загрузке данных...

На всякий случай, тут нельзя использовать просто условия в запросе. Развёртка идёт по годам, а не по ФИО, и поэтому условие <1000 будет работать на "суммарная зарплата у инвалидов такого-то года рождения меньше 1000", что совсем не то, что хотелось бы.

_________________
Ян Владимирович,
http://www.vladimirovich.net


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, дек 13 2007, 10:30 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, окт 11 2005, 12:10
Сообщения: 687
Откуда: Москва
Пол: Мужской
Yanvladimirovich написал(а):
На всякий случай, тут нельзя использовать просто условия в запросе. Развёртка идёт по годам, а не по ФИО, и поэтому условие <1000 будет работать на "суммарная зарплата у инвалидов такого-то года рождения меньше 1000", что совсем не то, что хотелось бы.

Вроде бы можно использовать формулу из предыдущего моего поста, с расчетом до агрегации.
И условий не надо тогда, раз фамилия не в развертке.

_________________
Глаза боятся, а руки крюки


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, дек 13 2007, 11:55 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, фев 16 2006, 15:46
Сообщения: 451
Откуда: Россия
Цитата:
Вроде бы можно использовать формулу из предыдущего моего поста, с расчетом до агрегации. И условий не надо тогда, раз фамилия не в развертке.


А если зарплата хранится в кубе как две записи на каждую ФИО, аванс + основная часть (условно, по 750 рублей + 750 рублей)

каждая сумма меньше, но обе суммы больше.

_________________
Ян Владимирович,
http://www.vladimirovich.net


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, дек 13 2007, 13:16 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, окт 11 2005, 12:10
Сообщения: 687
Откуда: Москва
Пол: Мужской
Yanvladimirovich написал(а):
А если зарплата хранится в кубе как две записи на каждую ФИО, аванс + основная часть (условно, по 750 рублей + 750 рублей)

каждая сумма меньше, но обе суммы больше.

Тогда чуть хитрее.
В одном запросе получаем список нужных нам людей (там условия и пр.).

Во втором, через путь замены, получаем этот список и ограничиваем им запрос.
Вроде все.

_________________
Глаза боятся, а руки крюки


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 10 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB