Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Count, distinct и condition в одном выражении BI Publisher template  [new]
commit;
Member

Откуда: SQL92
Сообщений: 47284
Всем доброго времени суток.
Нужно совет экспертов в BI Publisher.

Есть система, генерирующая xml для отчета (пример xml под спойлером)
+

  
<ListOfBipHlsCaseActionReport>
<HlsCase>
<CaseNum>130258-1703401</CaseNum>
<CreationDate>04/19/2005 03:20:00</ClosedDate>
<Name>Name1</Name>
<ListOfAction>
<Action>
<Description2>Review complaint data for threat potential</Description2>
<Planned>04/19/2005 03:20:00</Planned>
<Status>Scheduled</Status>
<Contact>Contact1</Contact>
</Action>
<Action>
<Description2>Review complaint data for threat potential</Description2>
<Planned>04/19/2005 03:20:00</Planned>
<Status>Scheduled</Status>
<Contact>Contact2</Contact>
</Action>
<Action>
<Description2>Review complaint data for threat potential</Description2>
<Planned>04/19/2005 03:20:00</Planned>
<Status>Scheduled</Status>
<Contact>Contact3</Contact>
</Action>
</ListOfAction>
</HlsCase>
<HlsCase>
<CaseNum>130258-1703402</CaseNum>
<CreationDate>04/19/2005 03:20:00</ClosedDate>
<Name>Name2</Name>
<ListOfAction>
<Action>
<Description2>Review complaint data for threat potential</Description2>
<Planned>04/19/2005 03:20:00</Planned>
<Status>Scheduled</Status>
<Contact>Contact1</Contact>
</Action>
<Action>
<Description2>Review complaint data for threat potential</Description2>
<Planned>04/19/2005 03:20:00</Planned>
<Status>Scheduled</Status>
<Contact>Contact5</Contact>
</Action>
</ListOfAction>
</HlsCase>
</ListOfBipHlsCaseActionReport>




Есть шаблон отчета в Word, сделанные в BI Publisher Desktop

Вопрос: как совместь count с использованием distinct для атрибута <Contact> сквозь все элементы HLS Case и фильтром по <Planned> для диапазона дат, полученного через две переменные.

Собвственно проблема только в совмещении всех трех условий вместе. Просто count прекрасно работает с условием проверки по <Planned> или с distinct по отдельности..
Исользуются формулы типа
<?count(Contact[условие проверки Planned на параметры отчета])?>
и
<?count(xdoxslt:distinct_values(Contact))?>
которые работают.

Но попытка совместить вместе три условия чтобы выбрать уникальные Contact c фильтром по дате Planned из всего набора HLS Case не удалась.

Как это можно сделать?Понимаю что такая тривиальная задача должна быть реализуема в отчете

Спасибо!
19 мар 16, 17:40    [18953539]     Ответить | Цитировать Сообщить модератору
 Re: Count, distinct и condition в одном выражении BI Publisher template  [new]
commit;
Member

Откуда: SQL92
Сообщений: 47284
В общем решение я нашел. Немного обходной вариант, но рабочий.

Отсортировал элементы Action по Contact и использовал переменные для хранения предыдущего значения Contact и счетчика


<?xdoxslt:set_variable($_XDOCTX,'counter',0)?>
<?xdoxslt:set_variable($_XDOCTX,'previous', '-1')?>
<?for-each-group:Action;./Contact?>	
		<?for-each:current-group()[Status='Scheduled']?>
		<?if: xdoxslt:get_variable($_XDOCTX, 'previous') != Contact?>
		<?xdoxslt:set_variable($_XDOCTX, 'previous', Contact)?>
		<?xdoxslt:set_variable($_XDOCTX, 'counter', xdoxslt:get_variable($_XDOCTX,'CNT') +1)?>
		<?end if?>
		<?end for-each?>	
<?end for-each-group?>
<?xdoxslt:get_variable($_XDOCTX, 'counter')?>


Но буду признателен, если кто сможет реализовать через стандартные механизмы - count и distinct
Реально зацепило, будет интересно узнать :)
21 мар 16, 00:52    [18956915]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить