如何在交叉连接中插入null?

Est*_*iro 0 sql oracle join

我这里有问题.我有2个表,它们通过列"id.x"链接.一个表具有给定月份的周数,例如,对于1月份,表格每月每周有5行.另一张表代表一个员工在一周内的努力.

我想加入这两个表,但我想以某种方式向我展示一个员工在一周内的努力,所以在这种情况下,每个员工有5个注册管理机构,即使他在某个星期没有注册工作在这种情况下,我们将努力设置为null.

我会告诉你我正在寻找什么,如果可能的话.

Table 1:
id week month year id.x
1   1    1    2019 7819
2   2    1    2019 7819
3   3    1    2019 7819
4   4    1    2019 7819
5   5    1    2019 7819

Table 2:
employee_id effort id.x week  
   63         100  7819  3
Run Code Online (Sandbox Code Playgroud)

结果我想:

employee week effort id.x
   63     1    null  7819
   63     2    null  7819
   63     3    100   7819
   63     4    null  7819
   63     5    null  7819
Run Code Online (Sandbox Code Playgroud)

有可能达到这个结果吗?

我目前正在尝试此查询:

select t2.employee, t1.week from 
table_2 t2
cross join
table_1 tt
order by t2.employee, t1.week;
Run Code Online (Sandbox Code Playgroud)

编辑:

如果我想总结给定周的价值?例如:

表2现在有:

employee_id effort id.x week  
       63    60    7819   3
       63    40    7819   3
Run Code Online (Sandbox Code Playgroud)

但我想要同样的答案:

结果我想:

  employee week effort id.x
       63     1    null  7819
       63     2    null  7819
       63     3    100   7819
       63     4    null  7819
       63     5    null  7819 
Run Code Online (Sandbox Code Playgroud)

MT0*_*MT0 8

使用PARTITION OUTER JOIN:

Oracle安装程序:

CREATE TABLE Table1 ( id, week, month, year, id_x ) AS
SELECT 1, 1, 1, 2019, 7819 FROM DUAL UNION ALL
SELECT 2, 2, 1, 2019, 7819 FROM DUAL UNION ALL
SELECT 3, 3, 1, 2019, 7819 FROM DUAL UNION ALL
SELECT 4, 4, 1, 2019, 7819 FROM DUAL UNION ALL
SELECT 5, 5, 1, 2019, 7819 FROM DUAL;

CREATE TABLE Table2 ( employee_id, effort, id_x, week ) AS
SELECT 63, 100, 7819, 3 FROM DUAL;
Run Code Online (Sandbox Code Playgroud)

查询:

SELECT t2.employee_id,
       t1.week,
       t2.effort,
       t1.id_x
FROM   Table2 t2
       PARTITION BY ( employee_id )
       RIGHT OUTER JOIN table1 t1
       ON (
             t1.week = t2.week
         AND t1.id_x = t2.id_x
       )
Run Code Online (Sandbox Code Playgroud)

输出:

EMPLOYEE_ID | WEEK | EFFORT | ID_X
----------: | ---: | -----: | ---:
         63 |    1 |   null | 7819
         63 |    2 |   null | 7819
         63 |    3 |    100 | 7819
         63 |    4 |   null | 7819
         63 |    5 |   null | 7819

db <> 在这里小提琴