Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Utilisation des set analysis

Bonjour,

j'ai une table que je charge avec ce srcipt:

devises:

LOAD

  CUDIVI as %DIVI,

  CUCUCD as Code_devise,

  date#(CUCUTD,'YYYYMMDD') as DateValidité_Devise,

  CUARAT as Taux_devise

FROM CCURRA.QVD (qvd)

WHERE

  CUCRTP=4

;

Il y en gros ces données là dedans:

Select '1Z0', 'USD', '2015-01-01 00:00:00.000', 1.30

UNION ALL Select '1Z0', 'USD', '2015-02-01 00:00:00.000', 1.20

UNION ALL Select '1Z0', 'USD', '2015-03-01 00:00:00.000', 1.10

UNION ALL Select '1Z0', 'USD', '2015-04-01 00:00:00.000', 1.00

UNION ALL Select '1Z0', 'GBP', '2015-01-01 00:00:00.000', 0.9

UNION ALL Select '1Z0', 'GBP', '2015-03-01 00:00:00.000', 0.95

UNION ALL Select 'AAA', 'USD', '2015-01-01 00:00:00.000', 1.00

Donc:

- un identifiant %DIVI

- un code devise Code_devise

- une date de début DateValidité_Devise

- un taux Taux_devise

Je cherche à obtenir pour une date donnée le taux à appliquer pour un identifiant et un code devise .

Pour une date donnée "DATE_REF" j'arrive à trouver la date du taux à appliquer via cette expression:

MAX (total<%DIVI,[Code devise]>

  if(

   DateValidité_Devise<DATE_REF,DateValidité_Devise

  )

)

J'aimerais donc filtrer uniquement les lignes les lignes ayant DateValidité_Devise = à ce MAX.

J'ai tenté les expressions suivantes:

     Pour la date de validité

=if(

isnull(only(total<%DIVI,[Code devise]> if(DateValidité_Devise=DATE_REF,true()))),

MAX (total<%DIVI,[Code devise]>

  if(

   DateValidité_Devise<DATE_REF,DateValidité_Devise

  )

)  

)

     Pour le taux

=if(

isnull(only(total<%DIVI,[Code devise]> if(DateValidité_Devise=DATE_REF,true()))),

ONLY(AGGR(

  IF(DateValidité_Devise=

   MAX (total<%DIVI,[Code devise]>

    if(

     DateValidité_Devise<DATE_REF,DateValidité_Devise

    )

   )

  ,[Taux devise]

  )

,DateValidité_Devise,%DIVI,[Code devise])

)

)

Ca fonctionne sauf quand la date DATE_REF est égale à la date de début d'une période.

Je n'ai rien qui apparaît dans les 2 expressions à ce moment là

Merci,

Willy

0 Replies