2017-07-13 26 views
-1

次の問題があります。 ルックアップテーブルに基づいて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

フィールドはアカウント、会社、地域内部のためのすべてのキー・フィールドが参加しています。 ルックアップテーブルの "origin"列に基づいた列 "new column"の作成方法

ありがとうございました!

+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

ありがとうございますが、ルックアップテーブルを選択する際に「グループby」を使用していることを忘れてしまいました。私はアカウント、会社、エリアをグループ化します。したがって、 "origin"はselectステートメントにありません。残念ながら、select文になければコードは機能しません –

+0

この場合、 'inner join table_2'を' inner join(何であれ何でも何でもグループ化してください) 'table_2' – fen1x

+0

内部結合でそれを選択しないと、最初のselect文でtable_2.originを使用することはできません。残念ながら私はそれを選択しません。なぜなら私はそれを「グループ」で使用しないからです。あなたが私の問題を理解することを願っていますありがとうございました! –

関連する問題