Bonjour,
J ai un peu du mal à m en sortir pour effectuer ma requete dc je me tourne vers vous.
Voici mon XML d entree
Mon souci est de déterminer un prix de vente pour un produit tel que :<RACINE>
<BLOC PRODUIT="P1" CLIENT="C2" CAPACITE_DDE="300" CAPACITE_TOTALE="900" PRIX="8"/>
<BLOC PRODUIT="P1" CLIENT="C1" CAPACITE_DDE="600" CAPACITE_TOTALE="900" PRIX="7"/>
<BLOC PRODUIT="P1" CLIENT="C1" CAPACITE_DDE="500" CAPACITE_TOTALE="900" PRIX="6"/>
<NIVEAU1 PRODUIT="P2" CLIENT="C1" CAPACITE_DDE="300" CAPACITE_TOTALE="500" PRIX="6"/>
<BLOC PRODUIT="P1" CLIENT="C1" CAPACITE_DDE="300" CAPACITE_TOTALE="900" PRIX="5"/>
<BLOC PRODUIT="P2" CLIENT="C1" CAPACITE_DDE="100" CAPACITE_TOTALE="500" PRIX="3"/>
<BLOC PRODUIT="P1" CLIENT="C2" CAPACITE_DDE="600" CAPACITE_TOTALE="900" PRIX="3"/>
</RACINE>
dès que la somme des capacités demandées pour un produit dépasse CAPACITE_TOTALE de ce produit --> Le prix est celui du bloc induisant ce dépassement (les blocs sont rangés par prix décroissant mais les produits sont mélangés).
Par exemple ici nous aurions pour P1 --> 300 + 600 + 500 > 900 dc PRIX_VENTE = 6. Il me faut donc rajouter comme attribut dans tout les bloc avec PRODUIT="P1" PRIX_VENTE="6"
Pour P2 comme 300 + 100 <= 500 on a comme prix le minimum soit PRIX_VENTE="3"
J ai essayé avec des preceding, des following dans tous les sens mais en vain ... Qqn aurait il une idée ?
J ai déjà fait un xslt me permettant d obtenir la colonne CUMUL qui me fait le cumul par produit ... Maintenant j aimerai bien trouver une astuce qui me permette de réaliser cet algo sans utiliser une fonction telle que min qui ne semble etre complexe à manipuler.
Partager