2017-07-13 4 views
-1

Ich habe folgendes Problem. Ich möchte Daten aus einer Tabelle anhand der Nachschlagetabelle auswählen. Das ist der einfache Teil. Aber in den Ergebnissen möchte ich eine neue Spalte, die auf der Lookup-Tabelle basiert.Wählen Sie basierend auf Lookup-Tabelle

Hier ein Beispielszenario:

LOOKUP-TABLE 
 
Account|Company|Area|origin|aktive 
 
----------------------------------- 
 
0020200|xqzComp|0100|HK1000|1 
 
0020300|xyzComp|0100|HK2000|0 
 
0020400|xxzComp|0100|HK3000|0 
 
0020500|xbzComp|0100|HK4000|1 
 

 

 
DATA-TABLE 
 
Account|Company|Area|State|keyFig1|KeyFig2 
 
------------------------------------------- 
 
0020200|xqzComp|0100|GERM|100.000|200.000 
 
0020400|xxzComp|0100|AUST|210.000|130.000 
 
0020400|xxzComp|0100|GERM|222.000|111.000 
 
0020500|xbzComp|0100|GERM|111.000|212.000 
 

 

 
RESULT: 
 
Account|Company|Area|State|keyFig1|KeyFig2|new column 
 
------------------------------------------------------ 
 
0020200|xqzComp|0100|GERM|100.000|200.000 |is_HK100 
 
0020500|xbzComp|0100|GERM|111.000|212.000 |not_HK100

Die Felder Konto, Unternehmen, Area sind alle Schlüsselfelder für die innere Verknüpfung. Aber wie erstellt man die Spalte "neue Spalte", die in der Spalte "Herkunft" der Lookup-Tabelle basiert

Vielen Dank!

+0

Mit welchen Herausforderungen sind Sie konfrontiert? Bitte teilen Sie, was Sie bisher versucht haben. Was ist die Logik hinter new_column-Daten? – money

Antwort

1
select Account, Company, Area, State, keyFig1, KeyFig2, 
    case 
     when table_2.origin = 'HK1000' then 'is_HK1000' 
     else 'not_HK1000' 
    end new_column 
from table_1 
inner join table_2 
on table_1.Account = table_2.Account 
    and table_1.Company= table_2.Company 
    and table_1.Area = table_2.Area 
+0

Vielen Dank, aber ich habe vergessen zu erwähnen, dass ich eine "Gruppe von" in der Auswahl der Nachschlagetabelle verwenden. Ich gruppiere auf Konto, Firma und Bereich. Also "Herkunft" ist nicht in der Select-Anweisung. Leider funktioniert dein Code nicht, wenn er nicht in der select-Anweisung ist –

+0

In diesem Fall kannst du 'inner join table_2' durch' inner join ersetzen (wähle was auch immer von wo auch immer was auch immer) table_2' – fen1x

+0

Ich tat es, aber Sie können table_2.origin nicht in der ersten SELECT-Anweisung verwenden, wenn Sie sie nicht im inneren Join auswählen. Leider wähle ich es nicht aus, da ich es nicht in der "Gruppe von" verwende. Ich hoffe du verstehst mein Problem. Vielen Dank! –

Verwandte Themen