2017-01-19 15 views
0

私は2つのテーブルのすべてを使って作成したテーブルを持っています。 case文を使用して作成された新しいテーブルに新しい列を挿入しようとしています。私の要件は、新しいテーブルのアドレスがアドレスと一致する場合、1(salesdataAと一致する場合)または2(salesdataBと一致する場合)のいずれかを挿入することです。新しい列の名前はProject_IDです。これどうやってするの?他のテーブルの値を使用して新しい列を作成する

create table allsalesdata as 
(select * from salesdataA 
union all 
select * from salesdataB) 
order by 1 

select * from allsalesdata 

ID     Address       Project_ID (requested) 
1     111 Obama Drive       1 
1     111 New York Street      2 
2     222 Clinton Drive       1 
2     222 Vermont Road       2 
3     333 Obama Street       1 
3     333 Florida Drive       2 
4     444 McCain Road       1 
4     444 Georgia Lane       2 

select * from salesdataA: 

ID     Address 
1     111 Obama Drive 
2     222 Clinton Drive 
3     333 Obama Street 
4     444 McCain Road 

select * from salesdataB: 

ID     Address 
1     111 New York Street 
2     222 Vermont Road 
3     333 Florida Drive 
4     444 Georgia Lane 


update allsalesdata 
CASE when sd.Address = pcr.Address then 1 
else 2 
end as Project_ID 
left join allsatesdata sd on salesdataA pcr 

答えて

1

あなたがテーブルを作成するときにこれを入れて:ゴードン@

create table allsalesdata as 
    select a.*, 1 as project_id 
    from salesdataA 
    union all 
    select b.*, 2 
    from salesdataB b 
    order by 1 ; 
+0

感謝を! –

関連する問題