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

Développement SQL Server Discussion :

mes tables aliassées ne donnent pas des champs aliassés


Sujet :

Développement SQL Server

  1. #1
    Membre du Club
    Inscrit en
    Octobre 2008
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 107
    Points : 56
    Points
    56
    Par défaut mes tables aliassées ne donnent pas des champs aliassés
    Bonjour,

    J'ai une requête dans une procédure qui doit me retourner des champs de plusieurs tables.
    J'ai une table expédition reliée a une table client et 2 fois a la table adresse (départ et arrivée).
    J'ai donc besoin de récupérer les deux adresses pour les afficher dans un datagridview.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    select * from EXP INNER JOIN ADR as ADR_DEP ON EXP_FK_ADR_DEP = ADR_DEP.ADR_ID INNER JOIN ADR as ADR_ARR ON EXP_FK_ADR_ARR = ADR_ARR.ADR_ID INNER JOIN CLI ON CLI_ID = EXP_FK_CLI 
    return
    La requêet s'exécute bien mais les 2 adresses ne sont pas préfixées de l'alias de la table.
    Ils ont donc tous les 2 ADR_RUE et non ADR_DEP.ADR_RUE et ADR_ARR.ADR_RUE

    Merci de vos solutions

  2. #2
    Expert éminent sénior
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Points : 12 891
    Points
    12 891
    Par défaut
    Bonsoir,

    Il faut mettre un alias pour sur vos colonnes d'adresses pour les différencier.

    N'hésitez pas par la même occasion à préfixer vos noms de table par le schéma concerné (dbo par défaut) et de mettre les colonnes concernées dans vos select . Evitez le SELECT * !!

    J'ai modifié votre requête , à vous d'adapter :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SELECT 
     CLIENTNAME,
     ADR_DEP.ADR_RUE AS ADR_RUE_DEPART,
     ADR_ARR.ADR_RUE AS ADR_RUE_ARRIVEE 
    FROM dbo.EXP  
    INNER JOIN dbo.ADR ADR_DEP 
     ON EXP_FK_ADR_DEP = ADR_DEP.ADR_ID 
    INNER JOIN ADR ADR_ARR 
     ON EXP.EXP_FK_ADR_ARR = ADR_ARR.ADR_ID 
    INNER JOIN dbo.CLI 
     ON CLI_ID = EXP_FK_CLI
    ++

  3. #3
    Membre du Club
    Inscrit en
    Octobre 2008
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 107
    Points : 56
    Points
    56
    Par défaut
    Merci de ton aide ça fonctionne parfaitement

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

Discussions similaires

  1. [AC-2003] Rendre visible ou pas des champs suivant critères
    Par ortiz dans le forum IHM
    Réponses: 2
    Dernier message: 07/10/2011, 08h51
  2. Requete sur des champs qui ne sont pas dans une autre table
    Par jean christophe dans le forum Débuter
    Réponses: 4
    Dernier message: 20/05/2010, 18h05
  3. [AC-2007] Mise à jour des champs (pas null) d'une table vers une autre table
    Par Daniel-Gérald dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 28/11/2009, 11h27
  4. Réponses: 0
    Dernier message: 18/07/2008, 12h38
  5. [PHP-JS] bouton reset ne supprimant pas des champs avec value
    Par SegmentationFault dans le forum Langage
    Réponses: 4
    Dernier message: 29/11/2006, 14h52

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