Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Bonjour à tous,
pour établir un bordereau de facturation de produits j'ai besoin de calculer prix*quantité.
Mais le prix peut varier dans le temps.
Pour le moment j'ai donc une table des ventes liée par un code_produit à une table des tarifs. Cette dernière table contient une date_début_tarif et une date_fin_tarif.
Tarifs :
code_produit | prix | date_debut_tarif | date_fin_tarif | |
---|---|---|---|---|
P1 | 10 | 01/01/2015 | 31/08/2016 | |
P1 | 12 | 01/09/2016 | 31/12/2999 | |
P2 | 45 | 01/01/2015 | 31/12/2999 |
Ce que je souhaite c'est ajouter un champ prix_calculé à ma table des ventes, qui contiendra le prix du produit à la date de la vente.
ex: si je vends un P1 le 05/01/2018 je voudrais que l’enregistrement correspondant dans la table des ventes ressemble à :
Champ | Valeur |
---|---|
date_vente | 05/01/2018 |
code_produit | P1 |
... | |
... | |
prix_calculé | 12 |
j'ai tenté sans succès de trouver mon bonheur dans le fonctions de type peek.
j'ai besoin d'aide svp!
merci.
ça donne ça avec l'intervalMatch --> Voir appli QlikView en pièce jointe.
Voici le script utilisé :
SET DateFormat='DD/MM/YYYY';
Tarifs:
LOAD code_produit,
prix,
date_debut_tarif,
date_fin_tarif
FROM
[https://community.qlik.com/message/1412134?et=watches.email.thread#1412134]
(html, utf8, embedded labels, table is @1);
Ventes:
LOAD * Inline [
code_produit, date_vente
P1, 05/01/2018
P1, 05/01/2016
];
Left Join(Ventes)
IntervalMatch( date_vente, code_produit )
LOAD date_debut_tarif, date_fin_tarif, code_produit
Resident Tarifs;
Left Join(Ventes)
LOAD code_produit,
date_debut_tarif,
date_fin_tarif,
prix
Resident Tarifs;
DROP Table Tarifs;
DROP Field date_debut_tarif;
DROP Field date_fin_tarif;
Bonjour,
Désolé pas le temps de formuler une réponse complète, mais ce que tu cherches à faire doit être réalisé avec la fonction intervalmatch :
ça donne ça avec l'intervalMatch --> Voir appli QlikView en pièce jointe.
Voici le script utilisé :
SET DateFormat='DD/MM/YYYY';
Tarifs:
LOAD code_produit,
prix,
date_debut_tarif,
date_fin_tarif
FROM
[https://community.qlik.com/message/1412134?et=watches.email.thread#1412134]
(html, utf8, embedded labels, table is @1);
Ventes:
LOAD * Inline [
code_produit, date_vente
P1, 05/01/2018
P1, 05/01/2016
];
Left Join(Ventes)
IntervalMatch( date_vente, code_produit )
LOAD date_debut_tarif, date_fin_tarif, code_produit
Resident Tarifs;
Left Join(Ventes)
LOAD code_produit,
date_debut_tarif,
date_fin_tarif,
prix
Resident Tarifs;
DROP Table Tarifs;
DROP Field date_debut_tarif;
DROP Field date_fin_tarif;
Salut Christophe, merci pour ta réponse! Si j'en crois l'aide, on dirait bien que c’est ça qu'il me faut en effet! merci beaucoup
, avec l'appli en plus? Avec un délai de réponse d'une demi heure chrono?
Chapeau et surtout merci beaucoup, ça va m'aider à comprendre cette fonction.
Vive la connaissance libre au service des autres!
Frédéric c'est la réponse de Sébatien tu dois mettre en correcte si non ça peut tromper ceux qui auront besoin d'un truc pareil dans le futur
ah oui, je me suis trompé! C'est réparé, merci Cyrille.
T'inquiète. l'erreur est humaine.