每月更新每日表中的一条记录

时间:2017-03-15 09:19:25

标签: mysql sql vertica

我有两个文件,一个是每日文件,第二个是月文件。现在,每天的文件将每天加载到一个表中。

我们在下个月第1周获得月度文件(例如在月度文件中我们有1月1日至1月31日的数据,我们将在2月1日星期收到该文件)。 加载每日文件数据后,我们将更新每月文件,现在我应该添加一列作为状态。

“当订单以每日或每月Feed显示时,将状态设置为BOOKED。如果订单未在每月Feed中出现但在每日Feed中出现,则您应将状态更新为“已取消”

谁为此写SQL?任何建议。

假设事实上我们有表

+----------+--------------------+-----------+ 
|order_id | booking_date | status | 
| 100 | 2017-02-10 | booked |
| 101 | 2017-02-12 | booked | 
+----------+--------------------+-----------+ 

在月度文件中

+----------+--------------------+ 
|order_id | booking_date |
|100 | 2017-02-10 | 
+-----------+-------------------+ 

我想要这样的结果

+----------+--------------------+-------------+ 
|order_id | booking_date | status |
| 100 | 2017-02-10 | booked | 
| 101 | 2017-02-12 | cancelled|

1 个答案:

答案 0 :(得分:0)

非常简单。将每月文件加载到数据库中,然后使用:

update MyTable
set status = 'Cancelled'
where Order_ID not in (select Order_ID from Monthly_File)