IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL Oracle Discussion :

ROW_NUMBER() OVER PARTITION BY MULTIPLE ORDER BY


Sujet :

SQL Oracle

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    CdP ERP
    Inscrit en
    Mars 2014
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : CdP ERP
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2014
    Messages : 33
    Points : 33
    Points
    33
    Par défaut ROW_NUMBER() OVER PARTITION BY MULTIPLE ORDER BY
    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 :

    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
    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..

    Bref je sèche,
    Si quelqu'un à une idée pour résoudre monn problème ça serait vraiment sympa .

    Merci par avance,

    pyth

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 801
    Points
    30 801
    Par défaut
    As-tu essayé avec ROW_NUMBER() OVER (PARTITION BY A.ARTICLE_0 ORDER BY A.ENDDAT_0 DESC, A.PRI_0 ASC) ?
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    CdP ERP
    Inscrit en
    Mars 2014
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : CdP ERP
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2014
    Messages : 33
    Points : 33
    Points
    33
    Par défaut
    Merci!!!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 27/01/2016, 18h31
  2. Over Partition By
    Par logiciel_const dans le forum Langage SQL
    Réponses: 4
    Dernier message: 16/02/2011, 16h01
  3. Postgre Over Partition By
    Par the java lover dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 01/08/2008, 09h11
  4. Over Partition SQL Server
    Par dosilbr dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 12/06/2008, 09h08
  5. Over Partition By - Doublon
    Par zizou771 dans le forum SQL
    Réponses: 8
    Dernier message: 23/01/2008, 18h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo