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 :

Problème doublon dans fonction select


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juillet 2008
    Messages
    80
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 80
    Par défaut Problème doublon dans fonction select
    Bonjour,

    Avant de me faire jeter je précise que j'ai lu
    http://sql.developpez.com/doublons/ mais je n'ai pas trouvé de réponse.

    Je fait une requete sur plusieurs tables et je souhaiterai ne pas afficher les doublons du premier champ (ano.ID_ANO).
    La fonction select distinct supprime les doublons sur la ligne entière mais moi je veux en plus supprimer les doublons du premier champ.

    Merci pour votre precieuse aide!

    Code sql : 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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    SELECT DISTINCT 
      ano.ID_ANO||';'|| 
      ano.ID_ELE ||';'||
      ano.TY_ELE ||';'||
      ano.ID_RESP ||';'||   
      sup.co_numinsee ||';'||  
      FV_COMMUNE.co_commune||';'||  
      cab.li_code ||';'||  
      FV_COMMUNE.co_groupecarto||';'||
      sup.sup_lty_libelle ||';'''';'''';'''';'||
      rel.rsu_sup_numero ||';'||
      anol.LIB_ANO ||';'||    
      ano.DA_ANO  ||';'||      
      DIV2.lib ||';'||
      urg.LIB ||';'||   
      ano.DATE_CLOTURE_ANO ||';'||        
      ano.NUM_AGENT_CLOTURE_ANO ||';'||
      ano.COMMENTAIRES ||';'
    FROM
      ANOMALIE ano,
      ANO_LISTE anol,
      me_v_sup_r sup,
      ME_SUP_REL rel,
      me_v_cab_r cab,
      ano_v_urg urg,
      ano_v_sta sta,
      FV_COMMUNE,
      ANO_DIV div2
    WHERE
      ano.ty_ele LIKE 'SUPPORT'
      AND ano.st_ano=DIV2.id
      AND ano.ty_ano=anol.ty_ano
      AND ano.id_ele=sup.sup_ident
      AND ano.id_ele=rel.sup_ident
      AND rel.RSU_ELE_TYPE ='CA'
      AND rel.cab_ident=cab.cab_ident
      AND ano.NV_ANO=urg.ID
      AND sup.co_numinsee=FV_COMMUNE.co_numinsee

  2. #2
    Membre Expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Par défaut
    Et tu prends quelle valeur pour les autres champs (en cas de doublon) ? La plus petite ? La plus grande ? La première qui vient ?

  3. #3
    Membre confirmé
    Inscrit en
    Juillet 2008
    Messages
    80
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 80
    Par défaut
    La première qui vient.

  4. #4
    McM
    McM est déconnecté
    Expert confirmé

    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
    Billets dans le blog
    4
    Par défaut
    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    SELECT id_ano ||';'||  MIN(lib) 
    FROM
    (SELECT  
      ano.ID_ANO, 
      ano.ID_ELE ||';'||
      ano.TY_ELE ||';'||
      ano.ID_RESP ||';'||   
      sup.co_numinsee ||';'||  
      FV_COMMUNE.co_commune||';'||  
      cab.li_code ||';'||  
      FV_COMMUNE.co_groupecarto||';'||
      sup.sup_lty_libelle ||';'''';'''';'''';'||
      rel.rsu_sup_numero ||';'||
      anol.LIB_ANO ||';'||    
      ano.DA_ANO  ||';'||      
      DIV2.lib ||';'||
      urg.LIB ||';'||   
      ano.DATE_CLOTURE_ANO ||';'||        
      ano.NUM_AGENT_CLOTURE_ANO ||';'||
      ano.COMMENTAIRES ||';' lib
    FROM
      ANOMALIE ano,
      ANO_LISTE anol,
      me_v_sup_r sup,
      ME_SUP_REL rel,
      me_v_cab_r cab,
      ano_v_urg urg,
      ano_v_sta sta,
      FV_COMMUNE,
      ANO_DIV div2
    WHERE
      ano.ty_ele LIKE 'SUPPORT'
      AND ano.st_ano=DIV2.ID
      AND ano.ty_ano=anol.ty_ano
      AND ano.id_ele=sup.sup_ident
      AND ano.id_ele=rel.sup_ident
      AND rel.RSU_ELE_TYPE ='CA'
      AND rel.cab_ident=cab.cab_ident
      AND ano.NV_ANO=urg.ID
      AND sup.co_numinsee=FV_COMMUNE.co_numinsee
    )
    GROUP BY id_ano

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Août 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 270
    Par défaut
    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     SELECT  
      ano.ID_ANO, MIN(
      ano.ID_ELE ||';'||
      ano.TY_ELE ||';'||
      ano.ID_RESP ||';'||   
      sup.co_numinsee ||';'||  
      FV_COMMUNE.co_commune||';'||  
      cab.li_code ||';'||  
      FV_COMMUNE.co_groupecarto||';'||
      sup.sup_lty_libelle ||';'''';'''';'''';'||
      rel.rsu_sup_numero ||';'||
      anol.LIB_ANO ||';'||    
      ano.DA_ANO  ||';'||      
      DIV2.lib ||';'||
      urg.LIB ||';'||   
      ano.DATE_CLOTURE_ANO ||';'||        
      ano.NUM_AGENT_CLOTURE_ANO ||';'||
      ano.COMMENTAIRES ||';' ) lib
    FROM
      ANOMALIE ano,
      ANO_LISTE anol,
      me_v_sup_r sup,
      ME_SUP_REL rel,
      me_v_cab_r cab,
      ano_v_urg urg,
      ano_v_sta sta,
      FV_COMMUNE,
      ANO_DIV div2
    WHERE
      ano.ty_ele LIKE 'SUPPORT'
      AND ano.st_ano=DIV2.ID
      AND ano.ty_ano=anol.ty_ano
      AND ano.id_ele=sup.sup_ident
      AND ano.id_ele=rel.sup_ident
      AND rel.RSU_ELE_TYPE ='CA'
      AND rel.cab_ident=cab.cab_ident
      AND ano.NV_ANO=urg.ID
      AND sup.co_numinsee=FV_COMMUNE.co_numinsee
    GROUP BY id_ano
    Ca marche aussi, on n'est pas obligé d'avoir un select dans la clause from.

    Ce qui est dommage, c'est d'être obligé de passer par un group by.

    Je pense qu'avec les fonction satistique on doit aussi pouvoir faire quelquechose.

  6. #6
    McM
    McM est déconnecté
    Expert confirmé

    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
    Billets dans le blog
    4
    Par défaut
    Ca marche aussi, on n'est pas obligé d'avoir un select dans la clause from.
    Houla, la honte sur moi


    Pour les fonctions analytiques tu n'iras pas plus loin, vu que leur but c'est de traiter toutes les données, forcément tu devras faire une restriction pour ne garder que les premières lignes de chaque id_ano.

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

Discussions similaires

  1. Doublons dans un select.
    Par JonathanMQ dans le forum SQL
    Réponses: 1
    Dernier message: 02/03/2010, 21h02
  2. Problème variable dans requête SELECT
    Par mary27 dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 15/06/2009, 18h43
  3. problème avec la fonction select()
    Par Bathou dans le forum Réseau
    Réponses: 6
    Dernier message: 28/10/2008, 15h04
  4. Problème DML dans fonction
    Par Z3phur dans le forum SQL
    Réponses: 7
    Dernier message: 03/01/2008, 18h14
  5. [SQL] Eviter doublons dans un select (sans DISTINCT)
    Par renaud26 dans le forum PHP & Base de données
    Réponses: 40
    Dernier message: 11/07/2006, 17h07

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