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 :

Comment récupérer 2 champs non doublonné ?


Sujet :

SQL Oracle

  1. #1
    Membre habitué

    Inscrit en
    Février 2005
    Messages
    356
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 356
    Points : 175
    Points
    175
    Par défaut Comment récupérer 2 champs non doublonné ?
    Bonjour tout le monde !

    Voilà, je souhaite effectuer une requête sur une table et pour ainsi faire le ménage "des doublons"

    Le problème est que dans ma table, j'ai des doublons sur le CodeArticle et LibelleArticle
    Voici un exemple de ma table
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    CodeArticle | LibelleArticle
    1           | tee-shirt
    2           | chaussure noir
    2           | chaussure bleu
    3           | pantalon
    4           | casquette
    5           | chaussette basse
    5           | chaussette haute
    6           | chaussette basse
    7           | chemise
    ...
    Comment puis-je faire sans modifier ma table de départ, effectuer une requete qui me ramène le MAX(CodeArticle) ainsi que son Libellé sans avoir de doublon des 2 côtés

    Voici le résultat que je souhaiterais avoir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    CodeArticle | LibelleArticle
    1           | tee-shirt
    2           | chaussure noir => 1 des 2 lignes
    3           | pantalon
    4           | casquette
    5           | chaussette haute
    6           | chaussette basse => Ici j'ai gardé cet enreg car le CodeArticle est > à l'ancien doublon
    7           | chemise
    ...
    Merci de vos réponses, j'attends impatiemment vos remarques

  2. #2
    Invité
    Invité(e)
    Par défaut
    tu peux t'inspirer de ce qui est là :
    http://oracle.developpez.com/faq/?page=3-1#doublons

  3. #3
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Au début j'ai pensé que c'était chaud, mais c'est peut être simple à coder.

    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
    18
    19
    20
    21
    22
    23
    24
    25
    WITH t AS (			 SELECT 1 Article, 'tee-shirt' lib FROM DUAL
     UNION ALL SELECT 2 Article, 'chaussure noir' lib FROM DUAL
     UNION ALL SELECT 2 Article, 'chaussure bleu' lib FROM DUAL
     UNION ALL SELECT 3 Article, 'pantalon' lib FROM DUAL
     UNION ALL SELECT 4 Article, 'casquette' lib FROM DUAL
     UNION ALL SELECT 5 Article, 'chaussette basse' lib FROM DUAL
     UNION ALL SELECT 5 Article, 'chaussette haute' lib FROM DUAL
     UNION ALL SELECT 6 Article, 'chaussette basse' lib FROM DUAL
     UNION ALL SELECT 7 Article, 'chemise' lib FROM DUAL)
     SELECT art, MIN(lib)
     FROM (
    		 SELECT lib, MAX(article) art
    		 FROM t
    		 GROUP BY lib
    		)
      GROUP BY art
     
    ART	MIN(LIB)
    1	tee-shirt
    2	chaussure bleu
    3	pantalon
    4	casquette
    5	chaussette haute
    6	chaussette basse
    7	chemise
    On groupe par libellé pour prendre l'article max.
    Pour pour ne pas avoir de doublons, on groupe par article max pour prendre un seul libellé.

    Au début je pensais que ce cas
    1-A
    2-A
    2-B
    Donnait
    1-A
    2-B

    Alors que si tu dis qu'on prend l'article max puis qu'on en prend un par code
    => 2-A ou 2-B

Discussions similaires

  1. comment récupérer un champ text
    Par alaa_85 dans le forum ASP.NET
    Réponses: 7
    Dernier message: 16/11/2007, 13h14
  2. Réponses: 15
    Dernier message: 07/11/2007, 14h08
  3. [SQL] Comment récupérer des champs a partir d'un fichier de sauvegarde?
    Par baguira dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 15/03/2007, 18h23
  4. Réponses: 2
    Dernier message: 29/01/2007, 19h34
  5. Comment rendre un champ non modifiable ?
    Par benoitinfrance dans le forum Langage
    Réponses: 13
    Dernier message: 11/08/2006, 09h03

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