Текущее время: Сб, ноя 08 2025, 22:19

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


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

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


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

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