[简化我的表格]我有一个excel模型,它根据按月汇总的客户订单输出预测。表a
+----------+--------+----------+
| Customer | Volume | Date |
+----------+--------+----------+
| A | 100 | 1/1/2020 |
| B | 100 | 1/1/2020 |
| C | 100 | 1/1/2020 |
| A | 100 | 2/1/2020 |
| B | 100 | 2/1/2020 |
| C | 100 | 2/1/2020 |
+----------+--------+----------+
我想将这些数据与来自数据库的实时数据结合起来,该数据库每月也会按第一个日期进行汇总(即,如果客户在1/5/20=1/1/1/2020订购)。表b:
+----------+--------+----------+
| Customer | Volume | Date |
+----------+--------+----------+
| A | 100 | 1/1/2020 |
| A | 100 | 1/1/2020 |
| A | 100 | 1/1/2020 |
| B | 100 | 2/1/2020 |
| B | 100 | 2/1/2020 |
| Z | 10 | 2/1/2020 |
+----------+--------+----------+
我还有第三个表,只有客户的第一个订单日期:表c:
+----------+----------+--+
| Customer | Date | |
+----------+----------+--+
| A | 1/1/2020 | |
| B | 1/1/2020 | |
| C | 1/1/2020 | |
| Z | 2/1/2020 | |
+----------+----------+--+
我想比较预测(a)如何跟踪(b)中的实时数据,以及添加客户的第一个订单日期(c)。因为(b)是最细粒度的数据,所以我从这个开始。如果我对(a)和(c)进行左连接,那么表a中的一些会被切断(这是我不想要的);但是,我的表(c)数据输入正确。如果我对(a)做了一个完全的外部连接,那么我确实得到了正确的总预测,但是完全的外部连接把表(c)弄乱了。为了增加更多的复杂性,表b可能有其他不属于预测的客户,所以我也需要查看这些数据。
预测截止日期:
select
b.customer,
b.volume,
b.date,
a.volume,
c.date
from b
left join a on b.customer = a.customer
left join c on c.customer = b.customer
数据不正确:
select
b.customer,
b.volume,
b.date,
a.volume,
c.date
from b
full outer join a on b.customer = a.customer
left join c on c.customer = b.customer
1条答案
按热度按时间lfapxunr1#
使用coalesce函数将表c与表a和表b的条目连接起来: