Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
stephane_kosior
Creator
Creator

Comment calculer une expression avec condition et sous calcul

Bonjour,

Je n'arrive pas à réaliser une formule (toute simple pourtant) ...voilà mon problème.

Ma requête SQL :

SELECT

     monChampPériode as Période,

     monChampVente as Vente,

     monChampCout as Marge

FROM maTable;

Dans une expression je voudrais savoir le montant total des ventes avec une marge inférieure à 50% et pour une période précise ?

Je n'ai pas de problème à faire la somme des ventes d'une période en faisant :

=sum({<Période={'201209'}>}Vente)

J'ai essayé de faire ça mais ça ne fonctionne pas :

=sum({<Période={'201209'},Marge/Vente={'<50%'}>}Vente)

Attention, je ne voudrais pas le faire dans la requête car ma requête est un peu plus complexe qu'il n'y parait !

Merci de votre aide

Stephane

1 Solution

Accepted Solutions
antoinelaviron
Partner - Contributor III
Partner - Contributor III

Hello,

Y a t il un ID pour chaque vente? Si oui, L'expression suivante devrait fonctionner dans une textbox

=sum({<Date={'201209'}>}Aggr(if(Marge/Vente<0.5,sum(Vente),0),Date,IdVente))

View solution in original post

8 Replies
yduval75
Partner - Creator III
Partner - Creator III

Salut,

Essayes ca :

If(sum({<Période={'201209'}>} Marge) / sum({<Période={'201209'}>} Vente) <0.5,

   sum({<Période={'201209'}>} Vente)

)

stephane_kosior
Creator
Creator
Author

Merci mais ça me donne le montant total des ventes de la période et non pas uniquement le montant des ventes avec une marge <50% ... j'avais déjà essayé ça !

yduval75
Partner - Creator III
Partner - Creator III

En créant un champ dans le script sinon,

SELECT

     monChampPériode as Période,

     monChampVente as Vente,

     monChampCout as Marge,

     monChampCout / monChampVente as TauxMarge

FROM maTable;

=sum({<Période={'201209'}, TauxMarge={'<0.5'}>} Vente)

stephane_kosior
Creator
Creator
Author

j'ai essayé mais les deux champs sont une multitude de CASE WHEN et ça complique énormément la requête ... je vais quand même réessayer pour voir mais c'est vrai que ce serait l'idéal !

antoinelaviron
Partner - Contributor III
Partner - Contributor III

Hello,

Y a t il un ID pour chaque vente? Si oui, L'expression suivante devrait fonctionner dans une textbox

=sum({<Date={'201209'}>}Aggr(if(Marge/Vente<0.5,sum(Vente),0),Date,IdVente))

Peter_Cammaert
Partner - Champion III
Partner - Champion III

Si la requête originale est trop compliquée, ajoutez un PRECEDING LOAD comme le suivant:

LOAD *,

           monChampCout / monChampVente as TauxMarge;

SELECT

     monChampPériode as Période,

     monChampVente as Vente,

     monChampCout as Marge

FROM maTable;

stephane_kosior
Creator
Creator
Author

Merci Antoine.

Effectivement cela fonctionne comme cela.

stephane_kosior
Creator
Creator
Author

Je vais essayer ... merci