Как получить совокупность двух агрессий в QlikView?

Если я хочу найти максимальное значение столбца из двух состояний, агрегированных по идентификатору участника, должно ли это работать?

=Aggr(
    MaxString(
        Aggr(NODISTINCT MinString({[State1]}DATE_STRING),MBR_ID)
        +
        Aggr(NODISTINCT MinString({[State2]}DATE_STRING),MBR_ID)
) , MBR_ID) 

Итак, если бы у меня были эти данные:

MBR ID          DATE_STRING
1               20120101
1               20120102
1               20120103

И в State1 было выбрано 20120101, а в State2 выбрано 20120103, мое выражение вернет 20120103 для члена 1.

Спасибо!

Изменить: в SQL это будет выглядеть так:

WITH MinInfo (DATE_STRING, MBR_ID)
AS (SELECT MIN(DATE_STRING), MBR_ID FROM Table WHERE TYPE IN ('State1', 'State2') GROUP BY MBR_ID, TYPE)
SELECT MAX(DATE_STRING) DATE_STRING, MBR_ID FROM MinInfo GROUP BY MBR_ID

person Bret Walker    schedule 05.03.2013    source источник


Ответы (1)


Было бы проще достичь своей цели, если бы вы преобразовали это в поле фактической даты. Предполагая, что вы используете диаграмму, где MBR_ID является измерением, если вам нужна максимальная дата (последняя дата), вы можете сделать следующее:

=nummax(Max({[State1]}DATE_STRING),Max({[State2]}DATE_STRING))

Чтобы преобразовать в дату, вы можете использовать эту функцию:

date#(DATE_STRING,'[text format of the date]')

(Для меня формат даты выглядит как ГГГГММДД, но если это день, а затем месяц, вы должны использовать ГГГГДДММ)

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

person JMon    schedule 16.08.2013