如何无需关联表,将Table B指定范围的单个日期列复制到Table A
解决方案
你无需使用JOIN关联两张表,直接在从Table B取数的SELECT语句中添加日期过滤条件即可满足需求,改造后的SQL语句如下(以Oracle为例):
INSERT INTO TABLE A ( "DATE" , "CL 1" , "CL 2" , "CL 3" , "CL 4" , "CL 5") SELECT "date", 0, 0, 0, 0, 0 FROM TABLE B WHERE "date" >= TRUNC(SYSDATE) AND "date" <= TO_DATE('2023-04-30', 'YYYY-MM-DD');
注意事项
- 列名包含空格时需要根据你使用的数据库类型做对应转义:Oracle用双引号包裹,MySQL用反引号
包裹,SQL Server用方括号[]`包裹 - 日期范围的右边界取2023年4月最后一天,可覆盖4月全部日期,如果你仅需要到4月1日,将日期值改为
'2023-04-01'即可 - 如果你要求未来日期对应的商品明细字段留空而非填0,把SELECT语句后的5个0替换为
NULL即可
内容的提问来源于stack exchange,提问作者Menon
相关产品推荐
相关产品推荐

