Bonjour,
Je dois extraire le dernier prix connu pour tous les articles qui n'ont pas de prix valide à la date du jour.
Je suis donc parti sur un row-number, partition sur le code article, et le order sur la date de fin validité tarif déccroissant :
Cela marche bien, un soucis que je n'avais pas envisager et que je ne sais pas résoudre c'est que je peux avoir pour un article plusieurs tarifs invalide avec la même date de fin de validité (tarif à seuil), et dans ce cas la je suis sensé ressortir le tarif le plus bas. J'ai essayé avec un MIN, message d'erreur. Inclure le prix dans le order by mais du coup ça me fait sauter la date..
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 SELECT SOCIETE, ARTICLE, PRIXOLD FROM (SELECT A.SOCIETE_0 AS SOCIETE, A.ARTICLE_0 AS ARTICLE, A.PRI_0 AS PRIXOLD, ROW_NUMBER() OVER (PARTITION BY A.ARTICLE_0 ORDER BY A.ENDDAT_0 DESC) as PRIXOLDRANK FROM TARIF A WHERE TRUNC(SYSDATE) > TRUNC(A.ENDDAT_0)) WHERE PRIXOLDRANK = 1
Bref je sèche,
Si quelqu'un à une idée pour résoudre monn problème ça serait vraiment sympa .
Merci par avance,
pyth
Partager