首页 > 解决方案 > 如何加入多个不均匀的视图

问题描述

我想加入具有不均匀数据的多个视图。让我用示例数据来解释

视图1:

DATE | COL2
150 rows

视图2:

DATE | COL3
30 rows

视图3:

DATE | COL4
15 rows

所以我想获得如下数据:

输出:

DATE | COL2 | COL3 | COL4
150 rows with nulls on some columns

DATE 列是 MONTH:YEAR,例如 02/2019。每个视图都由 DATEPART MONTH 和 YEAR 列组成,并集中在一个列中。所以我不想有重复的 DATE 行。

标签: sqlsql-server

解决方案


您可以根据日期的联合使用左联接

select t1.date, v1.COL2, v2.COL3, v3.COL4
from(

  select date from view1
  union
  select date from view2
  union
  select date from view2

) t1 
left join view1 v1 on t1.date = v1.date 
left join view2 v2 on t1.date = v2.date 
left join view1 v3 on t1.date = v3.date 

推荐阅读