Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Help with sql
Message
 
 
À
25/09/2006 12:26:33
Information générale
Forum:
Visual FoxPro
Catégorie:
Base de données, Tables, Vues, Index et syntaxe SQL
Titre:
Divers
Thread ID:
01156945
Message ID:
01156973
Vues:
14
Thanks Borislav.

>>I can't figure this out...2 tables.
>>
>>
>>Table1.dbf
>>id
>>released_by
>>prepared_by
>>approved_by
>>reviewed_by
>>
>>
>>where all the *_by fields match a loginid in the users table. I need to get the name field from the user table.
>>
>>
>>users.dbf
>>loginid
>>name
>>
>>
>>so something like:
>>
>>
>>select a.released_by, b.name as released_name, ;
>>       a.prepared_by, b.name as prepared_name, ;
>>       a.approved_by, b.name as approved_name, ;
>>       a.reviewed_by, b.name as reviewed_name ;
>>From table1 a, users b
>>
>>
>>This is where I am stuck, can't get the join quite like it needs to be....
>
>
>select table1.released_by, Usr1.name as released_name, ;
>       table1.prepared_by, Usr2.name as prepared_name, ;
>       table1.approved_by, Usr3.name as approved_name, ;
>       table1.reviewed_by, Usr4.name as reviewed_name ;
>From table1
>INNER JOIN users Usr1 ON table1.released_by = Usr1.Name
>INNER JOIN users Usr2 ON table1.prepared_by = Usr2.Name
>INNER JOIN users Usr3 ON table1.approved_by = Usr3.Name
>INNER JOIN users Usr4 ON table1.reviewed_by = Usr4.Name
>
>This is of course if ALL *_by fields are full, if they are not use LEFT JOIN and NVL() function in result, like
>
>lcSpace = SPACE(LEN(Users.name))
>select table1.released_by, NVL(Usr1.name, m.lcSpace) as released_name, ;
>       table1.prepared_by, NVL(Usr2.name, m.lcSpace) as prepared_name, ;
>       table1.approved_by, NVL(Usr3.name, m.lcSpace) as approved_name, ;
>       table1.reviewed_by, NVL(Usr4.name, m.lcSpace) as reviewed_name ;
>From table1
>LEFT JOIN users Usr1 ON table1.released_by = Usr1.Name
>LEFT JOIN users Usr2 ON table1.prepared_by = Usr2.Name
>LEFT JOIN users Usr3 ON table1.approved_by = Usr3.Name
>LEFT JOIN users Usr4 ON table1.reviewed_by = Usr4.Name
>
Précédent
Répondre
Fil
Voir

Click here to load this message in the networking platform