我有表生:
Year | Value1 | Value2
2015 Good Good
2016 Bad Good
2017 Bad Bad
和表Money:
Year | Money1 |Money2
2014 100 200
2015 300 null
2018 500 500
我想让tmp表看起来像这样: tmpTable
Year |Value1 |Value2 |Money1 |Money2
2014 Null Null 100 200
2015 Good Good 300 Null
2016 Bad Good Null Null
2017 Bad Bad Null Null
2018 Null Null 500 500
我可以在SQL Server中执行此操作吗?
答案 0 :(得分:1)
使用2个LEFT
联接并使用UNION
合并LEFT
个联接的结果集。
<强>查询强>
select t1.[Year], t1.[Value1], t1.[Value2], t2.[Money1], t2.[Money2]
from [Health] t1
left join [Money] t2
on t1.[Year] = t2.[Year]
union
select t1.[Year], t2.[Value1], t2.[Value2], t1.[Money1], t1.[Money2]
from [Money] t1
left join [Health] t2
on t1.[Year] = t2.[Year]
order by 1;
答案 1 :(得分:0)
如果两个表都需要Year,那么您可以在表Health和Money之间使用外连接。
答案 2 :(得分:0)
这是SQL查询,你可以参考这个
select A.Year,A.Value1,A.Value2, B.Money1,B.Money2 from Health A left join Money B on B.Year=A.Year
答案 3 :(得分:0)
创建您想要的表格&amp;使用连接查询来填充数据。
create table tmpTable(
Year data_type(size),
Value1 data_type(size),
Value2 data_type(size),
Money1 data_type(size),
Money2 data_type(size)
);
insert into tmpTable (Year,Value1,Value2, Money1, Money2)
select t1.Year, t1.Value1, t1.Value2, t2.Money1, t2.Money2
from Health t1
inner join Money t2 on t1.Year = t2.Year
答案 4 :(得分:0)
我认为你可以使用完整的外连接而不是左连接。
选择A.Year,A.Value1,A.Value2,B.Money1,B.Money2来自Health A完全外部加入Money B on B.Year = A.Year