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 :

Récupérer une seule adresse parmi plusieurs pour un contact


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Inscrit en
    Mars 2012
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mars 2012
    Messages : 8
    Par défaut Récupérer une seule adresse parmi plusieurs pour un contact
    Bonjour à tous,

    J'ai une requête qui me permet de récupérer les tiers d'une application. Le soucis est que ça me retourne parfois, plusieurs fois le même tiers si il a plusieurs adresse.

    Je veux donc modifier la requête pour que ça récupère aléatoirement une adresse (dans un 1er temps) pour 1 tiers. Ainsi je n'aurai plus plusieurs fois le même tiers pour chaque adresse.

    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
    43
    44
    45
    46
    47
    48
    49
    50
    select 
    'Numero' ||';'||
    'DateCreation' ||';'||
    'Civilite' ||';'||
    'Nom' ||';'||
    'Prenom' ||';'||
    'Telephone' ||';'||
    'Fax' ||';'||
    'AdresseEmail' ||';'||
    'Num'||'&'||'NomVoie' ||';'||
    'ComplementGeographique' ||';'||
    'BoitePostale' ||';'||
    'CodePostal' ||';'||
    'Localite' ||';'||
    'Pays' ||';'||
    'DateModification' from dual;
    select a.TIERS_CODE ||';'||
    to_char(a.TIERS_DATCRE,'DD/MM/RRRR')||';'||
    a.PP_QUALITE ||';'||
    a.TIERS_NOM ||';'||
    a.PP_PRENOM ||';'||
    b.ADRESS_TEL ||';'||
    b.ADRESS_FAX ||';'||
    b.ADRESS_EMAIL ||';'||
    b.ADRESS_VOIE ||';'||
    b.ADRESS_COMPLT ||';'||
    b.ADRESS_BP ||';'||
    b.ADRESS_CPOST ||';'||
    b.ADRESS_VILLE ||';'||
    b.ADRESS_PAYS ||';'||
    to_char(a.TIERS_DATMAJ,'DD/MM/RRRR')
    from APP_ADM.PUBLIC_EXPTIERS a, APP_ADM.PUBLIC_EXPADR b
    where a.tiers_code=b.TIERS_CODE
    and a.tiers_type =1
    group by a.TIERS_CODE, 
    to_char(a.TIERS_DATCRE,'DD/MM/RRRR'),
    a.PP_QUALITE ,
    a.TIERS_NOM ,
    a.PP_PRENOM,
    b.ADRESS_TEL,
    b.ADRESS_FAX,
    b.ADRESS_EMAIL,
    b.ADRESS_VOIE,
    b.ADRESS_COMPLT,
    b.ADRESS_BP,
    b.ADRESS_CPOST,
    b.ADRESS_VILLE,
    b.ADRESS_PAYS,
    to_char(a.TIERS_DATMAJ,'DD/MM/RRRR')
    order by a.TIERS_CODE ;
    Comment faudrait-il que je modifie la requête pour récupérer par exemple la première adresse trouvé ?

  2. #2
    Expert confirmé Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Par défaut
    Cherchez sur ce forum First/Last dans leur version agrégée.

  3. #3
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 636
    Billets dans le blog
    10
    Par défaut
    Il suffit d'ajouter fetch first n rows only
    n = 1 pour une seule ligne

    Par ailleurs
    - des alias un peu plus parlants que a, b ... sont recommandés, ca aide à la lecture
    par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    from APP_ADM.PUBLIC_EXPTIERS TIERS, 
         APP_ADM.PUBLIC_EXPADR   ADR
    avec 2 tables ca passe à peu près, mais au delà c'est vite illisible

    - il est également fortement recommandé de distinguer les critères de jointures des critères de filtrage
    jointure dans un prédicat inner/(full) outer join... on
    filtrage dans le where

  4. #4
    Expert confirmé Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Par défaut
    Citation Envoyé par escartefigue Voir le message
    ...
    - il est également fortement recommandé de distinguer...
    Par qui ?

  5. #5
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 636
    Billets dans le blog
    10
    Par défaut
    Par ceux qui respectent les normes SQL, qui sont soucieux de la lisibilité du code et de la portabilité

  6. #6
    Expert confirmé Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Par défaut
    En pratique la portabilité du code SQL reste un mythe et la lisibilité peut être assuré sans la norme ANSI.

Discussions similaires

  1. mon imprimante n'imprime q'une seule copie parmi plusieurs
    Par pipipicontrole dans le forum Word
    Réponses: 1
    Dernier message: 19/05/2014, 17h33
  2. Réponses: 6
    Dernier message: 09/09/2010, 13h58
  3. Réponses: 3
    Dernier message: 06/02/2009, 15h22
  4. Récupérer une seule valeur parmi plusieurs
    Par geraldgg dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 11/05/2007, 10h26
  5. [Requêtes] Selectionner une seule date parmis plusieurs
    Par Herman dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 28/03/2007, 15h01

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