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 :

recuperer premiere ligne des doublons


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 21
    Par défaut recuperer premiere ligne des doublons
    Bonjour,

    Voila mon problème : j'ai une table qui a une clé primaire ID_TECH et plusieurs champs champ1, ..., champ9. Cette table contient des doublons par rapport aux champs : champ1 et champ2, c'est-à-dire j'ai par exemple 3 lignes avec les même valeurs des champs : champ1 et champ2 et des valeurs différentes pour les autres champs.
    je voudrais trouver un moyen de recuperer uniquement la première de ces 3 lignes avec une requete sql.
    Pour info, je développe sous une base Oracle 10G.

    Merci d'avance pour votre aide.

  2. #2
    Membre éclairé
    Inscrit en
    Juin 2007
    Messages
    328
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 328
    Par défaut
    Bonjour,
    il suffit de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT ... FROM ... WHERE ... TOP 1 ' selectionne la  premiere ligne

  3. #3
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    TOP n'existe pas sous Oracle

    Il faut utiliser ROWNUM

  4. #4
    Membre éclairé Avatar de LBO72
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    406
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 406
    Par défaut
    Bonjour,

    Si le Grand Maitre OraFrance peut nous donner plus de précision ça sera mieux :-)...
    J'ai essayé de le faire aussi et je bloque
    J'ai essayé d'utiliser un order by et having.... je pense que je pars d'une mauvaise direction.

    LBO72.

  5. #5
    Membre éclairé Avatar de LBO72
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    406
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 406
    Par défaut
    Pour ne ramener les doublons, on peut faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    select * from  TaTable where (code1,code2)
           in (select code1,code2  from TaTable
               group by code1,code2 having count(*) > 1)
    Mais on n'aura pas les lignes qui ne sont pas multiples !!!!
    LBO72.

  6. #6
    Membre chevronné Avatar de miloux32
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    545
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 545
    Par défaut
    J'ai une question con la mais bon ....
    Pourquoi pas simplement un "distinct" sur tes champs doublonnés ? ( sans ramener les champs différents )
    ca t'apporte pas ce dont tu as besoin ?
    A moins que tu ne veuilles QUE les lignes en doublon et que tu te moques des lignes "simples"

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 21
    Par défaut
    bonjour zaineb,

    en fait, j'ai mal présenté mon problème. Je voudrais recuperer toutes les premières lignes de tous les doublons.
    vous trouverez ci-joint un exemple de table : champ1 et champ2 sont CODE1 et CODE2. Dans l'exemple, je voudrais ramener les lignes en rouge.

    Merci pour votre aide.
    Fichiers attachés Fichiers attachés

  8. #8
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    Citation Envoyé par sounine Voir le message
    Dans l'exemple, je voudrais ramener les lignes en rouge.
    pourquoi ? C'est celui qui a le plus petit ID_ENTRE ?

    Si c'est le cas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT CODE1,CODE2, MIN(ID_ENTRE)
    FROM tatable
    GROUP BY CODE1,CODE2

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 21
    Par défaut
    bonjour orafrance,

    en fait je voudrais ramener tous les champs d'une ligne dès que je détecte un nouveau couple de valeurs des champs CODE1 et CODE2, ainsi je n'aurais pas de doublons par rapport à ces 2 champs dans le résultat de la requête.

    Merci.

  10. #10
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    Citation Envoyé par sounine Voir le message
    bonjour orafrance,

    en fait je voudrais ramener tous les champs d'une ligne dès que je détecte un nouveau couple de valeurs des champs CODE1 et CODE2, ainsi je n'aurais pas de doublons par rapport à ces 2 champs dans le résultat de la requête.

    Merci.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT * FROM tatable WHERE (code1,code2,min_id_entre)
    IN (SELECT CODE1,CODE2, MIN(ID_ENTRE) min_id_entre
    FROM tatable
    GROUP BY CODE1,CODE2)
    ceci étant prendre qu'un seul des code1, code2 c'est bien mais j'attends encore que tu nous dises comment tu choisis celui qui te convient Dans mon exemple c'est celui qui a le id_entre le plus petit

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

Discussions similaires

  1. [AC-2000] Suppression de premières lignes des doublons dans une requête
    Par jyoboue2008 dans le forum Access
    Réponses: 3
    Dernier message: 17/03/2014, 18h55
  2. Recuperer les valeurs des lignes crocher dans gridview
    Par loubna_drime dans le forum ASP.NET
    Réponses: 0
    Dernier message: 27/05/2009, 15h38
  3. Lecture 2 premieres lignes, calcul valeurs doublons
    Par Homer.j dans le forum Langage
    Réponses: 3
    Dernier message: 18/05/2009, 16h22
  4. recuperer la premier ligne non vide
    Par nsqualli dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 04/12/2008, 18h12
  5. couper-coller des 1000 premieres lignes
    Par julien2602 dans le forum VBScript
    Réponses: 6
    Dernier message: 31/10/2007, 17h27

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