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 :

SELECT MIN avec plusieurs réponses [10g]


Sujet :

SQL Oracle

  1. #1
    Membre du Club
    Homme Profil pro
    Cadre
    Inscrit en
    Septembre 2013
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Cadre
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2013
    Messages : 83
    Points : 65
    Points
    65
    Par défaut SELECT MIN avec plusieurs réponses
    Bonjour à tous,
    la requête suivante marche jusqu'à la ligne 2, lorsque je rajoute la ligne 3 (phof-post_code) j'obtiens 4 résultats dont 1 seul correspond au MIN de la ligne 2.
    J'ai essayé en vain avec une jointure de la table à elle même, avec un LEFT OUTER JOIN.

    Merci d'avance pour votre aide.

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    SELECT phase_of.phof_orfa_numero,
    MIN (phase_of.phof_numero_phase),
    phase_of.phof_post_code
    FROM phase_of
    WHERE phase_of.phof_statut = 'L'
    AND phase_of.phof_orfa_numero = '188'
    GROUP BY phase_of.phof_orfa_numero,
    phase_of.phof_numero_phase,
    phase_of.phof_post_code
    Fichiers attachés Fichiers attachés

  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 803
    Points
    30 803
    Par défaut
    As-tu remarqué que phase_of.phof_numero_phase se trouvait dans les critères de regroupement ?
    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
    Membre du Club
    Homme Profil pro
    Cadre
    Inscrit en
    Septembre 2013
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Cadre
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2013
    Messages : 83
    Points : 65
    Points
    65
    Par défaut
    oui, le GROUP BY me le demande.

  4. #4
    Membre du Club
    Homme Profil pro
    Cadre
    Inscrit en
    Septembre 2013
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Cadre
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2013
    Messages : 83
    Points : 65
    Points
    65
    Par défaut
    j'ai trouvé.
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     SELECT phase_of.phof_orfa_numero "of"
    ,phase_of.phof_numero_phase "phase"
    ,phase_of.phof_post_code "poste"
    FROM phase_of
    INNER JOIN (SELECT phase_of.phof_orfa_numero, MIN(phase_of.phof_numero_phase) AS phof_numero_phase_2
                FROM phase_of
                WHERE phase_of.phof_statut = 'L'
                GROUP BY phof_orfa_numero) Phase2 
        ON phase_of.phof_orfa_numero = Phase2.phof_orfa_numero
    WHERE phase_of.phof_numero_phase = Phase2.phof_numero_phase_2
    ORDER BY 1

  5. #5
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Si le minimum du numéro de phase est unique par orfa_numero, vous pouvez simplifier votre requête grâce aux fonctions méconnues FIRST / LAST :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
      SELECT phof_orfa_numero                                                          as "of"
           , MIN(phof_numero_phase)                                                    as "phase"
           , MIN(phof_post_code) KEEP(dense_rank first order by phof_numero_phase asc) as "poste"
        FROM phase_of
       WHERE phof_statut = 'L'
    GROUP BY phof_orfa_numero
    ORDER BY phof_orfa_numero ASC;

  6. #6
    Membre du Club
    Homme Profil pro
    Cadre
    Inscrit en
    Septembre 2013
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Cadre
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2013
    Messages : 83
    Points : 65
    Points
    65
    Par défaut
    Merci Valdar pour ce complément de réponse.

    AT

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

Discussions similaires

  1. SELECT MIN() avec le bon identifiant
    Par redah75 dans le forum Requêtes
    Réponses: 24
    Dernier message: 06/05/2011, 19h02
  2. Select Case avec plusieurs variables
    Par sphynxounet dans le forum VB.NET
    Réponses: 10
    Dernier message: 10/08/2009, 18h16
  3. [Requête SQL] - Select count avec plusieurs tables
    Par Pithonnette dans le forum SQL
    Réponses: 7
    Dernier message: 25/06/2009, 19h19
  4. Select imbriqué avec plusieurs colonne
    Par rad_hass dans le forum Langage SQL
    Réponses: 2
    Dernier message: 11/10/2008, 10h48
  5. Requete select imbriqués avec plusieurs références
    Par GAlion dans le forum Langage SQL
    Réponses: 4
    Dernier message: 06/08/2004, 14h06

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