sql - 每日剧本斗争
问题描述
我正在尝试将数据插入daily_stats
具有以下行的表中
submission_date
message_class
channel
data_centre
line_of_business
submission_vol
从Payld_Data.Received_Messages
表中,但我希望我的脚本仅在脚本运行的那一天每天插入数据以获取消息
我在下面写了一些东西,但是我如何添加日期才能只添加每天收到的消息?
insert into daily_stats values (trunc(submission_date), Message_Class, Channel, data_centre, Line_Of_Business, submission_vol(*))
Select trunc(A.submission_date), A.Message_Class, A.Channel, A.Data_Centre, B.Line_Of_Business, submission_vol(*)
From Payld_Data.Received_Messages A, Recon_Data.Reconciliation_Control B
Where A.Conversation_Id = B.Conversation_Id
group by Trunc(A.Creation_Timestamp), A.Message_Class, A.Channel, A.Data_Centre, B.Line_Of_Business;
解决方案
我在这里猜测了一下,因为您的问题不是很清楚,您Submission_Date
应该是当前日期(您运行此 INSERT 语句的日期。如果是这种情况,那么以下应该有效:
insert into daily_stats (submission_date, Message_Class, Channel, data_centre, Line_Of_Business, submission_vol(*))
Select CURRENT_DATE, A.Message_Class, A.Channel, A.Data_Centre, B.Line_Of_Business, submission_vol(*)
From Payld_Data.Received_Messages A, Recon_Data.Reconciliation_Control B
Where A.Conversation_Id = B.Conversation_Id
group by Trunc(A.Creation_Timestamp), A.Message_Class, A.Channel, A.Data_Centre, B.Line_Of_Business;
这里最大的变化是
- 用于
CURRENT_DATE
获取当前日期 - 格式
INSERT INTO <table> (List, Of, Fields)
是写这个的正确方法,注意在VALUE
字段列表之前没有。 - 我删除了
TRUNC()
字段列表中的函数,因为这纯粹是字段列表,不允许转换/逻辑。它位于SELECT
查询的一部分,您可以在其中执行您的Trunc()
逻辑和其他逻辑。该INSERT
部分仅用于指定我们要插入哪个表以及哪些字段(及其顺序)。
您可以查看手册中的页面以查看Insert... Select
正确的语法。
推荐阅读
- coq - 我如何证明她不能仅通过介绍和申请来证明 Or_commutative?
- angular - npm 错误!运行命令时代码 E404 npm i --save core-js zone.js rxjs system.js
- python - 尝试拟合模型 python 时出现 AssertionError
- xamarin - Xamarin.Forms 当我尝试拨打包含星号和主题标签的号码时,主题标签未出现
- javascript - 在Node js promise函数中更新变量的值
- javascript - Angularjs ui-router 与 Materialize-angular 问题
- c# - ActiveX:尝试从 C# Web 浏览器使用打印预览时,窗口已打开但未最大化
- javascript - ES6 类和类实例作为构造函数中的参数
- c++ - 如果输入类型与目标类型不同,“cin”是否会将变量重置为某个默认值?
- scala - 为 groupby 列添加序列 ID