Объедините 2 вычисленных поля в 1 вычисляемое поле в Таблице - PullRequest
0 голосов
/ 19 февраля 2019

Я пытаюсь объединить 2 вычисляемых поля в 1 вычисляемое поле в таблице.

1-е вычисленное поле имеет следующую формулу:

    SUM(IF [PRODUCT]="MA" THEN((IIF(YEAR([CARRIER_EFFECTIVE_DATE])=2018 AND 
YEAR([CALENDAR_DATE])<=2018, [TOTAL_COMMISSION],0))) END)/SUM(IF [PRODUCT]="MA" 
THEN((IIF(YEAR([CARRIER_EFFECTIVE_DATE])=2018 AND YEAR([CALENDAR_DATE])<=2018, 
[PAID_MEMBERS],0))) END)

2-е вычисляемое поле имеет следующую формулу:

SUM(IF [PRODUCT]="MS"
THEN ((IIF(DATE([CARRIER_EFFECTIVE_DATE])=#2014-01-01# AND DATE([CALENDAR_DATE])
<=#2014-12-31#,[DATE_DEBIT_COMMISSION],0))) END)/ SUM(IF [PRODUCT]="MS"
THEN ((IIF (DATE([CARRIER_EFFECTIVE_DATE])>=#2014-01-01# AND 
DATE([CARRIER_EFFECTIVE_DATE])<=#2014-01-31#,[PAID_MEMBERS],0))) END)

Я создал эти 2 вычисления по отдельности, но когда я пытаюсь объединить их вместе, я получаю сообщение об ошибке: «Невозможно объединить агрегированные и неагрегированные сравнения или результаты в выражениях« ЕСЛИ »» Может кто-нибудь помочь в объединении этих 2вместе

1 Ответ

0 голосов
/ 21 февраля 2019

В комбинирующем операторе IF поле [Product] необходимо обернуть в ATTR (), чтобы сделать его агрегацией.Вот так ...

     IF ATTR([PRODUCT])="MA" ... 

Мой тест показывает, что расчет компиляции действителен.

Вот полное вычисленное поле, отредактированное из вашего оригинала.

IF ATTR([Product])="MA" 
THEN 
SUM(
    IF [Product]="MA" 
    THEN((IIF(YEAR([Carrier Effective Date])=2018 AND YEAR([Calendar Date])<=2018, [Total Commission],0))) 
    END)
/
SUM(
    IF [Product]="MA" 
    THEN((IIF(YEAR([Carrier Effective Date])=2018 AND YEAR([Calendar Date])<=2018, [Paid Members],0))) 
    END) 
ELSE 
SUM(
    IF [Product]="MS" 
    THEN ((IIF(DATE([Carrier Effective Date])=#2014-01-01# AND DATE([Calendar Date])<=#2014-12-31#,
        [Date Debit Commission],0))) 
    END)
/ 
SUM(
    IF [Product]="MS" 
    THEN ((IIF (DATE([Carrier Effective Date])>=#2014-01-01# AND DATE([Carrier Effective Date])<=#2014-01-31#,
        [Paid Members],0))) 
END) 
END
...