2010-04-24 3 views
1

J'ai deux tables de données avec les champs suivantsrequête SQL pour renvoyer des données à partir de deux lignes distinctes dans une table jointe à une table maître

table1=(ITTAG,ITCODE,ITDESC,SUPcode) 
table2=(ACCODE,ACNAME,ROUTE,SALMAN) 

Ceci est ma table maître client qui contient mes données clients tels que code client, nom du client, etc.

Chaque Route a un superviseur (table1 = supcode) et j'ai besoin de connaître le nom du superviseur dans ma table où le nom et le code du superviseur existent dans une table.

La table 1 contient tous les noms séparés par ITTAG. Par exemple, le nom du superviseur a ITTAG = 'K'; Le nom du vendeur a aussi ITTAG = 'S'.

ITTAG ITCODE ITDESC   SUPCODE 
------ ------ ------   ------- 
S  JT  JOHN TOMAS  TF 
K  WK  VIKI KOO  NULL 

Maintenant, c'est le résultat que je veux

ACCODE  ACNAME  ROUTE SALEMANNAME  SUPERVISORNAME 
-------  ------  ------ ------------  --------------- 
IMC1010  ABC HOTEL 01  JOHN TOMAS  VIKI KOO 

J'espère que cette information est suffisante pour obtenir la requête ..

+1

Vous ne nous avez pas dit comment connecter le superviseur au vendeur ou à l'itinéraire. – APC

Répondre

1

Votre structure de données est soit pas claire ou incomplète . Cela aiderait si vous montriez aussi les exemples de données pour Table1, mais il y aurait des problèmes.

SELECT t2.ACCODE, t2.ACNAME, t2.ROUTE, a1.ITDESC AS Salesman, a2.ITDESC AS Supervisor 
    FROM table1 AS t1 
    JOIN table2 AS a1 ON t1.SALMAN = a1.ITCODE 
    JOIN table2 AS a2 ON t1.?????? = a2.SUPCODE 

Il n'est pas clair si j'ai géré la jointure entre Table1 et Table2 pour les informations de vendeur correctement; c'est plausible, mais la jointure pour le superviseur devrait être similaire, et pourtant il n'y a pas de moyen de faire ce travail. D'où le '??????' dans la requête.

La technique de base pour joindre deux fois une table unique consiste à la citer deux fois avec des alias différents, comme indiqué. J'utilise habituellement une lettre ou une lettre et un chiffre pour les alias, comme indiqué.

+0

Je suppose qu'il existe une table Route qui contient le code de superviseur pour l'itinéraire. –

Questions connexes