Как мне получить аггре двух аггров в 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

1 ответ

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

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

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

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

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

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

Другие вопросы по тегам