2010-12-15 8 views
1

Es fällt mir ziemlich schwer, die richtige SQL-Anweisung dafür zu erstellen.SQL-Auswahl zum Referenzieren einer Suche basierend auf zwei Spalten

Beispieldaten (Simplistic View):

MasterTable 
Product DebitCode CreditCode 
Camera   1   4 
Computer  2   5 
Cellphone  3   6 


LookupTable 
Code Description 
1  Debit Camera 
2  Debit Computer 
3  Debit Cellphone 
4  Credit Camera 
5  Credit Computer 
6  Credit Cellphone 

Ich habe kein Problem machen eine innere für die DebitCode mit dem Kodex in der Lookup-Tabelle verbinden (oder die CreditCode), aber wenn ich versuche, sowohl ich, zu verwenden, Erhalten Sie zwei Einträge für jeden.

Ich brauche meine Daten abgerufen werden, so dass die Beschreibung für die Debit-Code und die Kredit-Code alle in einer Zeile ist.

Danke.

+0

macht es Sinn, Ihre Lookup-Tabelle in 2 Tabellen zu zerlegen: DebitLookup und CreditLookup? – tenfour

+0

Im Wesentlichen sollte das getan werden - brechen Sie die Suche in verschiedene Entitäten auf. Aber da ich an einer singulären Tabelle von Lookup-Codes arbeite, habe ich im Moment keine andere Möglichkeit, als dasselbe zu referenzieren. – Batuta

Antwort

2

Sie benötigen zwei separate Joins für Ihre LookupTable, eine für jeden Code.

select mt.Product, 
     lt1.Description as DebitDescription, 
     lt2.Description as CreditDescription 
    from MasterTable mt 
     inner join LookupTable lt1 
      on mt.DebitCode = lt1.Code 
     inner join LookupTable lt2 
      on mt.CreditCode = lt2.Code 
+0

Jetzt habe ich es. Ich habe nur versucht, am selben Tisch mitzumachen. Danke für diesen Tipp. – Batuta

Verwandte Themen