Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Join 将开始日期和结束日期加入另一个表并汇总_Join_Presto - Fatal编程技术网

Join 将开始日期和结束日期加入另一个表并汇总

Join 将开始日期和结束日期加入另一个表并汇总,join,presto,Join,Presto,表1表列为: cancel_date product total_cancels 6/1/2017 a 100 6/1/2017 b 40 6/2/2017 b 10 6/3/2017 b 20 . . . 6/1/2018 a 40 6/1/2018 b 10 表2 realdate cancel_start_date c

表1表列为:

cancel_date    product  total_cancels
6/1/2017       a        100
6/1/2017       b        40
6/2/2017       b        10
6/3/2017       b        20
.
.
.
6/1/2018       a        40
6/1/2018       b        10
表2

realdate  cancel_start_date    cancel_end_date
6/1/2017    6/1/2016           4/1/2017
6/2/2017    6/2/2016           4/2/2017
6/3/2017    6/3/2016           4/3/2017
.
.
.

因此,表1.t2.取消开始日期和t2.取消结束日期之间的取消日期, 我如何连接这两个表

我想要什么

product    realdate      total_cancels   cancel_date between start_date and end_date
a          6/1/2017       100000         6/1/2016-4/30/2017 
b          6/1/2017       8000           6/1/2016-4/30/2017
a          6/2/2017       100000         6/2/2016-5/1/2017
b          6/2/2017       8000           6/2/2016-5/1/2017
...

您要做的是使用on条件将表_2连接到表_1。取消日期介于表2.取消开始日期和表2.取消结束日期之间。但首先,我们需要使用DATE_PARSE函数使日期具有可比性。最后,总结一下这些值

SELECT
  table_1.product,
  table_2.realdate,     
  SUM(total_cancels) AS total_cancels,   
  CONCAT(table_2.cancel_start_date, '-', table_2.cancel_end_date) as start_to_end
FROM table_1 
JOIN table_2
WHERE DATE_PARSE(table_1. cancel_date, '%m/%d/%Y') 
  BETWEEN DATE_PARSE(table_2.cancel_start_date, '%m/%d/%Y') 
   AND DATE_PARSE(table_2.cancel_end_date, '%m/%d/%Y') 
GROUP BY 1, 2, 4 

您需要从表1中选择产品、取消日期。然后从表2中选择realdate,cancel\u date。求和或求和\u取消。然后将它们全部追加到一个输出表中。可以同时访问两个不同表中的行或列。请阅读并点击谷歌的“stackexchange家庭作业”,并显示您能够完成的部分。请阅读并采取行动。