2017-07-13 74 views
-1

我有以下問題。 我想根據查找表從一個表中選擇數據。這是簡單的部分。 但在結果中我想要一個基於查找表的新列。根據查找表選擇

這裏一個示例場景:

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

字段帳戶,公司,區域對內部所有關鍵領域的加盟。 但如何創建基於查找表的「原點」列的柱「新列」

非常感謝!

+0

您面臨的挑戰是什麼?請分享您迄今嘗試的任何內容。 new_column數據背後的邏輯是什麼? – money

回答

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

非常感謝您,但我忘記提及在查找表中選擇使用「group by」。我將帳戶,公司和區域分組。所以「起源」不在select語句中。不幸的是,如果代碼不在select語句中,你的代碼將不起作用 –

+0

在這種情況下,你可以用'inner join'替換'inner join table_2'(從任何任何組合中選擇任何內容)table_2' – fen1x

+0

我做到了,但如果不在內部聯接中選擇它,則不能在第一個select語句中使用table_2.origin。不幸的是,我不選擇它,因爲我沒有在「group by」中使用它。我希望你能理解我的問題。謝謝! –