Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

Calcul en qlikview

Bonjour,

J'ai un soucis pour traduire une requete sous forme de formule en qlikview.

ma requete est la suivante:

select sum(valeur) from (
select sum(value)/count(distinct codart) as valeur from tz_week_month_split tz

where tz.type = 'WEEK'

and tz.idaction = '00000000000SYSREP161010252345'

and tz.codmeasure = 'QTYESTIMATEDDISPLAY'

group by coddisplay)


et voici la traduction que j'en fait avec une formule qlikview

SUM(

    Aggr(

        Sum( {$<FORECAST_F.IDACTION={'00000000000SYSREP161010252345'}>,<FORECAST_F.TYPE ={'WEEK'}>,<FORECAST.CODEMEASURE={'QTYESTIMATEDDISPLAY'}> }     

               FORECAST_F.QTYESTIMATEDDISPLAY )/COUNT(DISTINCT FORECAST_F.CODART),

        FORECAST_F.IDACTION,FORECAST_F.CODDISPLAY

    )

)

la formule ne me donne pas la même réponse avec la requete,

Ma requete me retoure 840 ce qui n'est pas le cas de ma formule


Pouvez vous m'aider si le problème se trouve au niveau de la syntaxe de ma formule. Depuis des heures je ne trouve pas la solution.


Merci d'avance

12 Replies
Anonymous
Not applicable
Author

Bonjour Sébastien,

Hier j'ai pas pu te répondre à temps. Je crois savoir d'ou viens mon problème,

c'est au niveau de mon modèle de données des duplications de ligne ce qui fait que quand je fait la somme des

  • FORECAST_F.QTYESTIMATEDDISPLAY =20

pour une même semaine, il me sort le double(exemple pour la semaine 37 pour le FORECAST_F.CODART= B1822501, il me sort une somme de 40. Ce qui est fausse, normalement je devrait avoir 20)

La formule qu'on a fait est juste, mais pour eviter ce problème de doublon, j'ai un ami qui m'a conseillé de créer un aggrega sur le champ dans la somme mais je ne sais comment le faire. Tu sauras m'aider?

La formule est la suivante:

SUM(

    Aggr(

        Sum( {$<FORECAST_F.IDACTION={'00000000000SYSREP161010252345'}>}    

              FORECAST_F.QTYESTIMATEDDISPLAY

           )

               /COUNT({$<FORECAST_F.IDACTION={'00000000000SYSREP161010252345'}> } DISTINCT FORECAST_F.CODART),FORECAST_F.CODDISPLAY, FORECAST_F.IDACTION

        )

    )

Il faut que je prenne en compte dans ma formule l'unique valeur de FORECAST_F.QTYESTIMATEDDISPLAY

et non les doublons.

Merci

sfatoux72
Partner - Specialist
Partner - Specialist

Le mieux, ce serait de résoudre tes problèmes de doublon.

Si j'ai bien compris, QTYESTIMATEDDISPLAY est unique par CODDISPLAY et par semaine.

Si cela est bien le cas, tu peux utiliser simplement l'expression ci-dessous.

=Sum(
     
Aggr(
          
Only( {$<IDACTION={'00000000000SYSREP161010252345'}>}  QTYESTIMATEDDISPLAY ),
          
CODDISPLAY, semaine
      )
)

Tu peux utiliser soit Only, soit Avg. Si pour une semaine et un CODDISPLAY le postulat de départ n'est pas respecté:

  • Only retournera Null pour cette combinaison
  • Avg retournera la moyenne des QTYESTIMATEDDISPLAY pour cette combinaison
Anonymous
Not applicable
Author

, J'ai le sourire. c'est tout a fait la réponse que j'attendais. Oui pour chaque semaine le code QTYESTIMATEDDISPLAY

est unique.

Sum(

              aggr(

                    Only(

                         {$<FORECAST_F.IDACTION={'00000000000SYSREP161010252345'}>}    

              FORECAST_F.QTYESTIMATEDDISPLAY),FORECAST_F.CODDISPLAY,FORECAST_F.STARTDATE

              )

            )

           

Vraiment merci pour la réponse je vais pouvoir continuer avec le reporting. Pour le problème de doublon, je vais laisser le développeur de l'appli s'en chargé car on m'a juste demander de corriger les tickets.


resultat.png

Enfin, je peux sauter au plafond .

Merci Sébastien