Текущее время: Пн, сен 01 2025, 17:54

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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