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

MS SQL Server Discussion :

Comment lire deux fois la meme table avec une clé différente


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Août 2009
    Messages
    817
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 817
    Par défaut Comment lire deux fois la meme table avec une clé différente
    Bonjour,

    J'ai récupéré une query sous excel par tatonnement j'ai réussi à collecter certaines informations.
    Cependant j'ai besoin de lire une table y collecter un champ.
    Puis de rappeler la même table avec une autre clé pour lire le même champ.

    Je lit le champ string02 de la table Z_LOT_NO_CHARACTERISTIC avec la clé APR_Inventory.LotNo.
    Je lis aussi la table Genealogy où j'obtient un champ Genealogy.ParentLotNo.

    J'aimerais refaire un inner join comme suite

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    " INNER JOIN [flexnet].[dbo].[Z_LOT_NO_CHARACTERISTIC] ON Z_LOT_NO_CHARACTERISTIC.LotNo = genealogy.parentlotno " & _
    Pour récupérer un nouvelle fois le champ String02 de Z_LOT_NO_CHARACTERISTIC avec la valeur genealogy.parentlono

    Je me doute qu'il faille déclarer cette table en alias j'ai essayé avec une <*> devant et après, mais ça ne passe pas

    Voici un extrait du code comme il se présente.
    Il fonctionne jusqu'à ce niveau, mais je ne sais pas relire
    Z_LOT_NO_CHARACTERISTIC.

    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
     
        'Set and Excecute SQL Command'
            Set objMyCmd.ActiveConnection = objMyConn
            objMyCmd.CommandText = "SELECT container.Container, Product.ProductNo, TT_Prod.Medium, string02, APR_Inventory.LotNo, Container.Warehouse, APR_Inventory.Location, TT_Comment.Extended, Genealogy.ParentLotNo" & _
            " FROM [MaBase].[dbo].[Inventory_Container]" & _
            " INNER JOIN [MaBase].[dbo].[Container] ON container.container = inventory_container.container" & _
            " INNER JOIN [MaBase].[dbo].[inventory] ON ID = Inventory_container.inventoryID " & _
            " INNER JOIN [MaBase].[dbo].[APR_Inventory] ON APR_Inventory.InventoryId = Inventory.ID  " & _
            " INNER JOIN [MaBase].[dbo].[LOT_NO] ON [MaBase].[dbo].[LOT_NO].[LotNo] = APR_Inventory.LotNo" & _
            " INNER JOIN [MaBase].[dbo].[Z_LOT_NO_CHARACTERISTIC] ON [MaBase].[dbo].[Z_LOT_NO_CHARACTERISTIC].[LotNo] = APR_Inventory.LotNo" & _
            " INNER JOIN [MaBase].[dbo].[PRODUCT] ON PRODUCT.ID = [MaBase].[dbo].[inventory].ProductID" & _
            " INNER JOIN [MaBase].[dbo].[TEXT_TRANSLATION] AS TT_Prod ON TT_Prod.TextID = PRODUCT.TextID AND TT_Prod.LanguageID = '1036'" & _
            " INNER JOIN [MaBase].[dbo].[TEXT_TRANSLATION] AS TT_Comment ON TT_Comment.TextID = LOT_NO.TextID AND TT_Comment.LanguageID = '1036'" & _
            " INNER JOIN [MaBase].[dbo].[Genealogy] ON genealogy.LotNo = inventory.lotno " & _
            " WHERE Container.Container like '" + Worksheets("ProtectedSheet").Cells(1, 1).Value + "%'"
    Je ne sais pas si je suis sur le bon forum, je suis un habitué d'Excel, mais je pense que ma concerne plus SQL.
    Merci de vos conseils
    Denis

  2. #2
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2008
    Messages
    699
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Octobre 2008
    Messages : 699
    Par défaut
    Est ce qu'un alias ne règle pas le problème ? (j'avoue, j'ai pas tout lu)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INNER JOIN [flexnet].[dbo].[Z_LOT_NO_CHARACTERISTIC] AS L_Autre_Cle ON L_Autre_Cle.LotNo = genealogy.parentlotno

  3. #3
    Membre éclairé
    Inscrit en
    Août 2009
    Messages
    817
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 817
    Par défaut
    Merci Donpi,

    La séquence d'alias fonctionne !!!

    J'ai un autre soucis la requête se fiche sur la première occurence pour deux tables liées.
    Mais c'est peut-être l'index qui n'est pas bon
    Je vais explorer avant de poster éventuellement.

    Denis

  4. #4
    Membre éclairé
    Inscrit en
    Août 2009
    Messages
    817
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 817
    Par défaut
    C'est bon ca marche, je n'avais pas assez d'occurences d'affichées.

    MERCI ENCORE

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 23/01/2012, 13h13
  2. Réponses: 7
    Dernier message: 30/10/2007, 16h35
  3. Lire deux fois un inputstream
    Par Guybrush dans le forum Entrée/Sortie
    Réponses: 6
    Dernier message: 05/09/2005, 14h50
  4. Réponses: 11
    Dernier message: 02/02/2005, 12h52
  5. Comment je peux changer nom de 'Table' avec la phrase sql
    Par YEK dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 01/10/2004, 08h38

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