Requêtes à l'aide de la table de search

Je suis tryng pour interroger des tables en utilisant une table de search, ceci parce que les tables ont un nom différent / code pour une même valeur.

Par exemple, les tables Employee et Production ont le même champ de Site , mais elles ont un nom différent. Par conséquent, je souhaite que le champ Person de l' Employee et Percent de la Production soit joint au même Site .

 =Employee= id | Person | Site ---+----------+------ 1 | Joe | Mex 2 | Sally | MXN 3 | Eric | Mex 4 | John | USA =Production= id | % | Site ---+----------+------ 1 | 98 | Mexico 2 | 97 | USA 3 | 98 | India 4 | 96 | Thailand =SiteCode= id | Site | Sitecode ---+----------+------ 1 | Mexico | Mex 2 | Mexico | MXN 3 | USA | USA 4 | USA | Unite States of America 

Sortie souhaitée:

  Person | % ----------+------ Joe | 98 Sally | 98 Eric | 98 John | 97 

Déjà essayé quelque chose dans le genre de:

 select Employee.Person, Production.Percent from Employee INNER JOIN SiteCode on Employee.Site = SiteCode.Sitecode INNER JOIN SiteCode.Sitecode = Production.Site 

Toute aide serait appréciée, juste ne peux pas envelopper mon cerveau autour d'elle ..

 select Employee.Person, Production.Percent from Employee INNER JOIN SiteCode on Employee.Site = SiteCode.Sitecode INNER JOIN Production on SiteCode.Site = Production.Site 

C'est difficile. Vous devriez vraiment corriger datatables. Mais, vous pouvez faire quelque chose comme ça:

 with sc as ( select sc.*, (case when sitecode = 'Unite States of America' then 'USA' else sitecode end) as new_sitecode from sitecode sc ) select e.Person, p.percent from employee e join sc on e.site = sc.new_sitecode join production p on p.site = sc.site;