Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
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
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é:
Bonjour,
le set analysis doit être défini dans la fonction sum, mais également dans la fonction Count. Sinon, ces 2 fonctions ne sont pas executé sur le même set de données:
SUM(
Aggr(
Sum( {$<FORECAST_F.IDACTION={'00000000000SYSREP161010252345'}>,<FORECAST_F.TYPE ={'WEEK'}>,<FORECAST.CODEMEASURE={'QTYESTIMATEDDISPLAY'}> }
FORECAST_F.QTYESTIMATEDDISPLAY )/COUNT({$<FORECAST_F.IDACTION={'00000000000SYSREP161010252345'}>,<FORECAST_F.TYPE ={'WEEK'}>,<FORECAST.CODEMEASURE={'QTYESTIMATEDDISPLAY'}> } DISTINCT FORECAST_F.CODART),
FORECAST_F.IDACTION,FORECAST_F.CODDISPLAY
)
)
Bonjour,
J'ai apporté la correction dans le count également et quand je l'exécute le resultat est 0. Je n'ai toujours pas la même réponse que la requete, je ne comprend plus rien ce cette formule. Je voudrais savoir si c'est la bonne interpretation que j'ai fait de la requete?
Merci
En regardant mieux votre requête, j'ai remarqué que le group by ne se fait que sur CODDISPLAY, alors que dans l'expression vous le faisiez également sur IDACTION
SUM(
Aggr(
Sum( {$<FORECAST_F.IDACTION={'00000000000SYSREP161010252345'}>,<FORECAST_F.TYPE ={'WEEK'}>,<FORECAST.CODEMEASURE={'QTYESTIMATEDDISPLAY'}> }
FORECAST_F.QTYESTIMATEDDISPLAY )/COUNT({$<FORECAST_F.IDACTION={'00000000000SYSREP161010252345'}>,<FORECAST_F.TYPE ={'WEEK'}>,<FORECAST.CODEMEASURE={'QTYESTIMATEDDISPLAY'}> } DISTINCT FORECAST_F.CODART),
FORECAST_F.CODDISPLAY
)
)
C'est par contre étrange que vous ayez 0
Je crois que j'ai trouvé le problème, il y avait des "<", ">" un peu partout dans le set analysis :
SUM(
Aggr(
Sum( {$<FORECAST_F.IDACTION={'00000000000SYSREP161010252345'}, FORECAST_F.TYPE ={'WEEK'}, FORECAST.CODEMEASURE={'QTYESTIMATEDDISPLAY'}>} FORECAST_F.QTYESTIMATEDDISPLAY ) / COUNT( {$<FORECAST_F.IDACTION={'00000000000SYSREP161010252345'}, FORECAST_F.TYPE ={'WEEK'}, FORECAST.CODEMEASURE={'QTYESTIMATEDDISPLAY'}>} DISTINCT FORECAST_F.CODART),
FORECAST_F.CODDISPLAY
)
)
Oui c'est d'autre condition que j'ai ajouté dans la formule, mais cela ne change en rien la réponse que je trouve.
Pour ce fais j'ai donc decidé de faire des jeux de tests pour mieux comprendre ce qui se passe dans Qlikview et voila ce qui en ressort: j'ai donc fait une table pour voir mes valeurs recherchées
avec ma requete j'ai bien les 840. Mais quand je fais une somme de mes valeurs, j'ai 6760.
J'ai n'est que faire
sum( {$<FORECAST_F.IDACTION={'00000000000SYSREP161010252345'}>}
FORECAST_F.QTYESTIMATEDDISPLAY)
De la je me suis dit que tout va mal. Je ne sais pas ce que Qlikview me calcul pour sortir 6760 au lieu de 840
Pour moi c'est pas ça l'erreur, même en enlevant les <> cela ne change rien à ma réponse. Le problème ne vient pas de la, surement d'ailleur c'est pour quoi je suis entrain de faire des tests pour voir ou est l'erreur.
Pas de panique 😉
Dans ton objet "Zone table", Qlikview n'affiche qu'une ligne par combinaison.
Pour confirmer cela, crée un objet de type "Graphique"."Tableau simple", sélectionne tes 3 champs comme dimension et ajoute l'expression Sum(1), Tu auras pour chaque combinaison le nombre de ligne chargée.
Si le nombre de ligne est trop important, c'est surement une erreur dans ton script de chargement.
J'ai fait comme tu me l'as dit en créant une table simple et remit la formule dans expression. j'ai aussi rajouté le champ FORECASTART(pour les articles) pour voir les articles par semaine et j'obtiens ça(voir tableau):
exactement les mêmes données que la base de données ou j'ai appliqué la requete suivante:
select sum(valeur) from (
select sum(FORECAST_F.QTYESTIMATEDDISPLAY)/count(distinct FORECAST_F.CODART) as valeur from tz_week_month_split tz
where tz.idaction = '00000000000SYSREP161010252345'
group by coddisplay,tz.idaction
Le resultat de cette requete me retournait 840
et la sommeQT est calculé à partir de ça:
Sum({$<FORECAST_F.IDACTION={'00000000000SYSREP161010252345'}>} FORECAST_F.QTYESTIMATEDDISPLAY)
et moi pour interprèter cette dans Qlikview j'ai donc procédé comme suit:
=SUM(
Aggr(
Sum( {$<FORECAST_F.IDACTION={'00000000000SYSREP161010252345'}>}
FORECAST_F.QTYESTIMATEDDISPLAY )/COUNT({$<FORECAST_F.IDACTION={'00000000000SYSREP161010252345'}>} DISTINCT FORECAST_F.CODART),
FORECAST_F.IDACTION,FORECAST_F.CODDISPLAY
)
) ma formule me donne une réponse très loin de la valeur attendu.
Dans un premier temps, j'ai donc fait ceci:
SUM(
Aggr(
Sum( {$<FORECAST_F.IDACTION={'00000000000SYSREP161010252345'}>}
FORECAST_F.QTYESTIMATEDDISPLAY ),
FORECAST_F.IDACTION,FORECAST_F.CODDISPLAY
)
)
/
SUM(AGGR(COUNT({$<FORECAST_F.IDACTION={'00000000000SYSREP161010252345'}> } DISTINCT FORECAST_F.CODART),FORECAST_F.CODDISPLAY, FORECAST_F.IDACTION))
mais je trouve 751,11 au lieu de 840
j'ai vraiment besoin d'aide sur cette formule.
peut-on faire un group by sans aggrega? (une question que je me pose)
Salut,
Je crois que je suis sur une piste, peux-tu :
Pour joindre un fichier, il faut utiliser l'éditeur avancé et cliquer sur Joindre en bas à droite