Текущее время: Пн, авг 18 2025, 19:57

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




Начать новую тему Ответить на тему  [ Сообщений: 16 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Выбрать одно значение с максимальным параметром (временным)
СообщениеДобавлено: Ср, окт 24 2007, 15:56 
Директор
Директор

Зарегистрирован:
Сб, мар 11 2006, 14:59
Сообщения: 1259
Пол: Мужской
Решал ли кто, и каким образом или может идеи есть, такую задачу:
есть табличка (одс или признак со сложным ключом и с атрибутами- пока не суть важно) с ключем некторого объекта, со значением статуса (например, объект - автомобиль, а статусы возможные - "погружено" и "пусто") и датой, начиная с которой у объекта устанавливается указанный статус (или - дата смены статуса на указанный). В отчете нужно вывести актуальный статус, но (!) в фильтре пользователь указывает диапазон по времени, за который делается отчет и статус должен быть выбран такой, что дата его установки максимальная из всех, которые меньше или равны концу периода. Даты начала и конца периода устанавливаются пользователем произвольно.

Собственно вопросы - возможно ли это сделать в принципе, какими способами и есть ли среди этих способов более менее стандартный\правильный (и какой)?

В голове крутится что-то на тему измерений изменяющихся во времени и странные джоины с групбаями и максами, но как-то все очень смутно. Подскажите, плиз!


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

Зарегистрирован:
Ср, авг 16 2006, 03:22
Сообщения: 464
Пол: Мужской
Может я не совсем понял...
По-моему здесь просто нужно использовать в отчете спецагрегацию LAST для данного показателя...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, окт 24 2007, 16:45 
Директор
Директор

Зарегистрирован:
Сб, мар 11 2006, 14:59
Сообщения: 1259
Пол: Мужской
Lench написал:
Может я не совсем понял...
По-моему здесь просто нужно использовать в отчете спецагрегацию LAST для данного показателя...

Так это не показатель, а признак... ну даже если добавлю показатель еще фиктивный - она ведь не уберет все записи у которых не ласт, агрегация только для итогов будет работать.


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

Зарегистрирован:
Ср, авг 16 2006, 03:22
Сообщения: 464
Пол: Мужской
может зависимый от времени атрибут, контрольная дата запроса - дата окончания периода... ?


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

Зарегистрирован:
Пт, июн 24 2005, 15:18
Сообщения: 1216
Откуда: Diagon Alley
Lench написал:
может зависимый от времени атрибут, контрольная дата запроса - дата окончания периода... ?


Насколько я помню, контрольная дата отчёта может быть переменная, которую можно заполнить в USER-EXIT-e

_________________
"Если ты в молодости не испытал трудности, их стоит купить за большие деньги". (с) Даймо


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, окт 24 2007, 17:44 
Директор
Директор

Зарегистрирован:
Сб, мар 11 2006, 14:59
Сообщения: 1259
Пол: Мужской
Да, похоже, что атрибут, зависимый от времени должен подойти на 100%, просто я забыл, как он становится зависимым от времени. ;) Помнил про галочку во вкладке "Иерархии", но это же не то. Правда похоже, что совсем без извратов (без юзер-эксит ;) ) не обойтись, но думаю, что все получится - спасибо большое :pivo: Потом напишу - получилось или нет. ;)


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

Зарегистрирован:
Ср, авг 16 2006, 03:22
Сообщения: 464
Пол: Мужской
Цитата:
Насколько я помню, контрольная дата отчёта может быть переменная, которую можно заполнить в USER-EXIT-e

Согласен, если период - это переменная-интервал, можно экзитом брать его окончание и в контрольную дату запроса эту дату окончания периода
Хотя возможно есть варианты и без экзита...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, окт 24 2007, 17:55 
Директор
Директор

Зарегистрирован:
Сб, мар 11 2006, 14:59
Сообщения: 1259
Пол: Мужской
Я завтра допробую уже - надеюсь, что BW к записи в кубе будет "подтягивать" тот атрибут, который соответствует значению измерения времени в кубе. Или екситом.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вс, окт 28 2007, 20:17 
Директор
Директор

Зарегистрирован:
Сб, мар 11 2006, 14:59
Сообщения: 1259
Пол: Мужской
Попробовал - на куб оно, а точнее - на временное его измерение, как и ожидалось, не реагирует. Однако, если период отчета задать не одной переменной типа "период", а двумя типа "отдельное значение", то и для контрольной даты можно указать любую, по необходимости, из этих переменных, тогда пользователь введет один раз интервал - заодно и контрольную дату. И не нужно ексита писать. ;)


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

Зарегистрирован:
Ср, авг 16 2006, 03:22
Сообщения: 464
Пол: Мужской
Там может не дать использовать ту же переменную (например Дата окончания периода) для ограничения других временных признаков (0CALDAY, 0PSTNG_DATE, 0DOC_DATE), если эта переменная уже используется в контрольной дате запроса... Тогда нужен экзит ))


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, окт 30 2007, 11:33 
Директор
Директор

Зарегистрирован:
Сб, мар 11 2006, 14:59
Сообщения: 1259
Пол: Мужской
Lench написал:
Там может не дать использовать ту же переменную (например Дата окончания периода) для ограничения других временных признаков (0CALDAY, 0PSTNG_DATE, 0DOC_DATE), если эта переменная уже используется в контрольной дате запроса... Тогда нужен экзит ))

Ну я попробовал на 3.5 - дает, но если у дату ограничить одной переменной типа "диапозон", то тогда не дает эту переменную использовать как контрольную дату (может есть какая-то нотация записи переменной такого типа, которая явно укажет, какое из граничных значений использовать в качестве контрольной даты и тогда разрешит). А если ограничить диапозоном из двух переменных типа "отдельное значение", то дает использовать любую из них.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, окт 31 2007, 12:20 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Чт, май 26 2005, 11:36
Сообщения: 651
Откуда: Киев-Москва
Не получается BEX - решите через виртуальные признаки/показатели. Медленнее, правда, работать будет.

_________________
Рисую потоки данных.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, окт 31 2007, 13:42 
Директор
Директор

Зарегистрирован:
Сб, мар 11 2006, 14:59
Сообщения: 1259
Пол: Мужской
Zharik написал(а):
Не получается BEX - решите через виртуальные признаки/показатели. Медленнее, правда, работать будет.

Ну оно как раз-то получилось... полностью, в том варианте, который я описал вверху. Если б не новый прикол, в отчете надо вывести несколько временных периодов, причем статус объекта должен вычисляться соответственно периоду. Поскольку периодов несколько, а контрольная дата - одна, то тогда вариант уже не прокатывает. Лично я вижу два варианта - либо вывести на разных страницах одной книги отчетов по количеству периодов (а оно еще и динамическое, типа сами хотим указать произвольное количество, произвольных периодов, а оно пусть выведет, но мне кажется - это уже совсем не реализуемо), а потом склеить на VBA на одной странице... но тогда потеряется, скорее всего, возможность произвольно добавлять\убирать признаки\показатели\атрибуты, либо виртуалить по полной...
Или может есть возможность как-то назначить контрольную дату признака ссылкой на дату в кубе или на дату, которая может быть атрибутом другого признака?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, окт 31 2007, 14:30 
Директор
Директор

Зарегистрирован:
Сб, мар 11 2006, 14:59
Сообщения: 1259
Пол: Мужской
Вот кстати более того - два отчета не получается запустить, поскольку нужно, чтобы для каждого отчета bw снова запросило параметры, а, поскольку один и тот же отчет, то оно запрашивает один раз, а второй раз молча принимает те же значения. ;(


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Выбрать одно значение с максимальным параметром (временным)
СообщениеДобавлено: Ср, окт 31 2007, 15:10 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Ср, апр 12 2006, 12:43
Сообщения: 863
Откуда: СССР
Пол: Мужской
Road Runner написал:
..... статус должен быть выбран такой, что дата его установки максимальная из всех, которые меньше или равны концу периода. Даты начала и конца периода устанавливаются пользователем произвольно.
Собственно вопросы - возможно ли это сделать в принципе, какими способами и есть ли среди этих способов более менее стандартный\правильный (и какой)?

Возможно, если вызвать ABAP код из BW.
Ниже реально работающий код:
Code:
    select single *
    from таблица базы данных
    into структура
    where ( набор условий )
       and balance_date = ( select max( balance_date )
                          from таблица базы данных
                          where balance_date <= максимальная дата
                             and ( набор условий ) ).

Я не BW-шник, звиняйте если что не так :wink:


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 16 ]  На страницу 1, 2  След.

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


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

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


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

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