SELECT id, toc_order_no, toc_order_line_no
FROM dm_demand_order_line_toc
WHERE dr =0AND ( toc_order_no, toc_order_line_no ) IN (
( 'N2404000012', '1371748181548054539' ),
( 'N2404000012', '1371748181548054540' )
)
插入查询结果集
-- 查询结果字段必须和插入表字段一致,可以指定部分字段INSERTINTO emp2
SELECT*FROM employees
-- 指定字段INSERTINTO emp2(id, code, create_time)
SELECT id, code, create_time
FROM employees
WHERE department_id =90;
时间查询
-- 获取当前系统年月是时分秒SELECTYEAR(CURDATE()),MONTH(CURDATE()),DAY(CURDATE()),
HOUR(CURTIME()),MINUTE(NOW()),SECOND(SYSDATE())
FROM DUAL
-- 查询当前是一年中第几天,是一年中第几周,月份名称等等SELECT
MONTHNAME('2021-10-26'),DAYNAME('2021-10-26'),WEEKDAY(now()),
QUARTER(CURDATE()),WEEK(CURDATE()),
DAYOFYEAR(NOW()), DAYOFMONTH(NOW()),DAYOFWEEK(NOW())
FROM DUAL;
联表更新
-- test1 的 name 设置为 test2 的 name(两表 code 相等,单字段)update test1
set name = (select name from test2 where test2.code=test1.code)
-- test1 的 addr 和 num 设置为 test2 的 addr 和 num(两表 name 和 age 相等,多字段)update test1 a
innerjoin (select*from test2) b on a.name = b.name and a.age = b.age
set a.addr = b.addr, a.num = b.num
case when
SELECT
record_no 流水号,
order_no 订单编号,
sap_no sap 单据号,
CASEWHEN business_type >16THEN'不可能'WHEN business_type =2THEN'订单取消'WHEN business_type =5THEN'支付翻新费'WHEN business_type =16THEN'财务调整'WHEN business_type =1THEN'订单支付'WHEN business_type =4THEN'取消发货'WHEN business_type =3THEN'支付运费'ELSE business_type
END'类型',
quota 金额,
dealer_code 经销商编码,
create_time 创建时间,
update_time 更新时间
FROM
c_credit_ext_record
WHERE
org_code ISNULLAND dealer_code IN ( '13869', '13844' )
AND dr =0;
存储过程-遍历查询结果集并处理
DELIMITER $$
-- 存储过程名称,不带参数CREATEPROCEDURE repairCurrentDayStatistics()
BEGIN-- 声明变量DECLARE rst intDEFAULT0;
DECLARE shopCode varchar(255);
DECLARE stockId bigint;
DECLARE countDate datetime;
-- 声明游标:游标存储的内容为 select 结果集DECLARE record CURSORFORselect shop_code, stock_id, count_date from it_stock_statistics_tob;
-- 循环结束时,更改变量 rst 设置为1DECLARE CONTINUE HANDLER FORNOT FOUND SET rst =1;
-- 打开游标OPEN record;
-- 游标内容赋值给变量FETCH record INTO shopCode, stockId, countDate;
-- 循环开始,当 rst 不等于 1 才进入循环体
WHILE rst <>1 DO
-- 具体业务操作update it_stock_statistics_tob a
innerjoin (
select
r.shop_code, r.stock_id, r.countDate,
r.sp, r.spw, r.ss, r.ssw
from (select shop_code, stock_id, countDate, sum(purchase_size) sp, sum(purchase_weight) spw, sum(sale_size) ss, sum(sale_weight) ssw
from it_stock_statistics_tob
where shop_code = shopCode and stock_id = stockId and count_date <= countDate
) r
) b
on a.shop_code = b.shop_code and a.stock_id = b.stock_id and a.count_date = b.countDate
set a.total_purchase_size = b.sp, a.total_purchase_weight = b.spw, a.total_sale_size = b.ss, a.total_sale_weight = b.ssw;
-- 业务操作结束,再把一个游标内容赋值给变量FETCH record INTO shopCode, stockId, countDate;
-- 循环结束END WHILE;
-- 关闭游标CLOSE record;
END$$
DELIMITER ;
-- 调用存储过程CALL repairCurrentDayStatistics();
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具