2017-07-27 10 views
0

- データを2つのテーブルに分けてデータを抽出する際に、条件を追加して符号を反転する必要があります。設定する方法は、データをカラムに抽出し、データにサインオンしますが、追加の列は必要ありません。サインを反転する条件は、アカウント名がA3/A4/A5で始まる場合です。あなたは私がサインを反転するための追加の条件を作成するのを手伝ってください。テーブルからビューを作成するときにフリップサインを使用する方法

enter image description here

Account Type Flip Sign Condition 
----------- --------- ---------  
Liabilities   -1 A3 
Equity    -1 A4 
Revenue    -1 A5 
Assets     1 A0 

Table1 

Account_Name Account_ID 
------------- ---------- 
A530003001001   235  
A331300002003   468  
A080001001000   255  
A293001004189   128  

Table2 

Account_ID  Balance 
---------- ----------- 
235    14700  
468    23500  
255   -226183.11  
128   130471.19  

予想ビュー

Account    Value 
------------- --------- 
A530003001001  -14700  
A331300002003  -23500  
A080001001000 -226183.11  
A293001004189 130471.19  
+0

Table1にアカウントタイプがありません。 – mathguy

+0

最初のテーブルは、フリップがどのように機能するかを参照するためのものです – Rakesh

+0

あなたは理にかなっていません。ビューは、Table2から値を取得し、アカウントの種類に応じてフリップするかどうかを選択します。しかし、口座タイプはTable1にはありません。それで、どの金額を反転させるか、反転させない金額はどうやって決めるのですか? – mathguy

答えて

0

(何CREATE TABLE/INSERT文が提供されなかったため、テストされていない)、このような何か:

create view view_1 as 
select t1.account_name, f.flip_sign * t2.balance as value 
from table1 t1 join flipping_table f on substr(t1.account_name, 2) = f.condition 
       join table2   t2 on t1.account_id    = t2.account_id 
; 
0

は列ACCOUNT_TYPE、Flip_Sign、および条件ですAccount_Name列と同じ表に アカウントID。そうであれば、次のクエリを使用することができます。

SELECT t1.Account_Name AS Account, 
     t2.Balance * t1.Flip_sign AS Value 
    FROM Table1 t1 
INNER JOIN Table2 t2 
    ON t1.Account_ID = t2.Account_ID 
関連する問題