2013-03-05 5 views
0

Если я хочу найти максимальное значение столбца из двух состояний, агрегированных идентификатором участника, должно ли это работать?Как получить агг из двух агг в 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 

ответ

0

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

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

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

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

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

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