我有两个文件,一个是每日文件,第二个是月文件。现在,每天的文件将每天加载到一个表中。
我们在下个月第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|
答案 0 :(得分:0)
非常简单。将每月文件加载到数据库中,然后使用:
update MyTable
set status = 'Cancelled'
where Order_ID not in (select Order_ID from Monthly_File)