系列文章【Oracle】数据库服务器限制ip访问本文链接https://blog.csdn.net/youcheng_ge/article/details/122220930【Oracle】Excel导入数据教程本文链接https://blog.csdn.net/youcheng_ge/article/details/118722756【Oracle】数据库还原教程_数据泵本文链接https://blog.csdn.net/youcheng_ge/article/details/118054855【SQL】如何查询表字段并识别主键本文链接https://blog.csdn.net/youcheng_ge/article/details/110820405【SQL】outer apply的用法本文链接https://blog.csdn.net/youcheng_ge/article/details/79903489【SQL】多表连接重复数据处理本文链接https://blog.csdn.net/youcheng_ge/article/details/79903619MySQL安装教程详细本文链接https://blog.csdn.net/youcheng_ge/article/details/126037520MySQL卸载教程详细本文链接https://blog.csdn.net/youcheng_ge/article/details/129279265【MySQL】group by分类汇总如何增加“总计”字段?本文链接https://blog.csdn.net/youcheng_ge/article/details/128217837【MySQL】WITH CHECK OPTION的用法本文链接https://blog.csdn.net/youcheng_ge/article/details/128147196【MySQL】使用存储过程插入千万级数据如何提升效率本文链接https://blog.csdn.net/youcheng_ge/article/details/77728189【MySQL】数据库表行列转置的实现本文链接https://blog.csdn.net/youcheng_ge/article/details/77625052【MySQL】查询中NULL值转换为空字符串本文链接https://blog.csdn.net/youcheng_ge/article/details/130381878文章目录系列文章前言一、技术介绍二、数据脚本三、效果展示四、用法总结前言本专栏专注数据库原理与SQL实战。从建表、视图、索引等基础架构到增删改查CRUD、触发器、事务处理及安全授权全方位覆盖后端必备技能。拒绝碎片化学习系统掌握嵌入式SQL与企业级数据操作。对内容感兴趣持续关注不迷路任何疑问欢迎评论或私信探讨一、技术介绍视图的定义视图不是真实存在的基本表而是一个虚拟表二、数据脚本WITH-- 淋膜产出output_linksas(selecttax0009.C_PLANT_CD,tax0009.C_GROUP_LINE,top3230.*fromTop_3230 top3230innerjointax_0009 tax0009ontax0009.C_MACHINE_CDtop3230.C_MACHINE_IDwhere(tax0009.C_GROUP_LINE${cboMachineId}or${cboMachineId})and(top3230.C_CLASS_GROUP${cboClassGroup}or${cboClassGroup})andtop3230.D_OUTPUT_TIME${dateEditor0}ANDtop3230.D_OUTPUT_TIME${dateEditor1}),lm_output_linksas(selectop.*fromoutput_links opinnerjointop_3240 top3240ontop3240.C_PAPERROLL_NOop.C_PAPERROLL_NOwhereop.C_PROC_CD10028andtop3240.C_PAPERROLL_NOlikeL%),-- 淋膜产出汇总lm_tableas(selectop.C_PLANT_CD,op.D_OUTPUT_TIME,op.C_MACHINE_ID,op.C_CLASS_GROUP,count(1)lmjs,sum(N_WGT)lmwgt,op.C_GROUP_LINEfromlm_output_links opgroupbyop.C_PLANT_CD,op.C_MACHINE_ID,op.C_CLASS_GROUP,op.D_OUTPUT_TIME),-- 复卷产出明细fj_tableAS(selectmm.D_OUTPUT_TIME,mm.C_class_group,mm.C_MACHINE_ID,count(C_PAPERROLL_NO)asfjjs,sum(N_WGT)asfjwgtfrom(selectdistincta.C_MACHINE_ID,a.C_class_group,a.C_PAPERROLL_NO,c.D_OUTPUT_TIME,c.N_WGTfromtop_3240 ainnerjointop_3130 bona.C_BAR_CODEb.C_OLD_BAR_CODEinnerjointop_3240 conb.C_OUTPUT_NOc.C_OUTPUT_NOinnerjointop_3230 dond.C_BAR_CODEc.C_BAR_CODEwherec.C_PROC_CD10004AND/*c.C_MACHINE_ID NOT in (JXFJ03,JXFJ06,JXFJ07) and*/d.C_WORK_TYPE复卷andEXISTS(select1fromlm_table lmwherelm.c_machine_ida.C_MACHINE_IDandlm.c_class_groupa.C_CLASS_GROUPandlm.d_output_timec.D_OUTPUT_TIME))mmgroupbymm.D_OUTPUT_TIME,mm.C_class_group,mm.C_MACHINE_ID),-- 最终结果合并淋膜和复卷数据result_tableas(SELECTlm.C_PLANT_CDASC_PLANT_CD,COALESCE(lm.D_OUTPUT_TIME,fj.D_OUTPUT_TIME)ASD_OUTPUT_TIME,COALESCE(lm.C_MACHINE_ID,fj.C_MACHINE_ID)ASC_MACHINE_ID,COALESCE(lm.C_CLASS_GROUP,fj.C_CLASS_GROUP)ASC_CLASS_GROUP,COALESCE(lm.lmjs,0)ASlmjs,COALESCE(lm.lmwgt,0)ASlmwgt,COALESCE(fj.fjjs,0)ASfjjs,COALESCE(fj.fjwgt,0)ASfjwgt,fj.C_MACHINE_IDasfjjt,lm.c_group_lineFROMlm_table lmLEFTJOINfj_table fjONlm.D_OUTPUT_TIMEfj.D_OUTPUT_TIMEANDlm.C_MACHINE_IDfj.C_MACHINE_IDANDlm.C_CLASS_GROUPfj.C_CLASS_GROUP),result_table1as(selectt.c_group_line,t.c_class_group,t.d_output_time,sum(t.lmjs)lmjs,sum(t.fjjs)fjjs,sum(t.lmwgt)lmwgt,sum(t.fjwgt)fjwgtfromresult_table tgroupbyt.c_group_line,t.c_class_group,t.d_output_time)select*,(selectsum(t2.fjjs)/sum(t2.lmjs)fromresult_table1 t2wheret2.d_output_timet1.d_output_timeandt2.c_group_linet1.c_group_line)aslmlvfromresult_table1 t1orderbyt1.d_output_time,t1.c_group_line,t1.c_class_group--------------------------------这2个字段是原纸卷也就是淋膜机的目前你写的是分条机的COrginMachineId原纸卷产线 COrginClassGroup原纸卷班组 COrginPaperrollNo原纸卷编号 fjjs件数 fjwgt重量-- 复卷小复卷产出的日期,淋膜机的班组selectcount(1),sum(N_WGT)from(selectdistinctC.C_BAR_CODE C_BAR_CODE,c.N_WGT N_WGT,a.C_CLASS_GROUPfromtop_3240 a-- 原纸信息innerjointop_3130 bona.C_BAR_CODEb.C_OLD_BAR_CODEinnerjointop_3240 conb.C_OUTPUT_NOc.C_OUTPUT_NO-- 产出分条innerjointop_3230 DonC.C_BAR_CODED.C_BAR_CODEinnerjointax_0009 tax0009ontax0009.C_MACHINE_CDa.C_MACHINE_IDwhere1andc.C_PROC_CD10004andD.C_WORK_TYPE复卷andtax0009.C_GROUP_LINEJXLM07andc.D_OUTPUT_TIME2026-05-02andc.D_OUTPUT_TIME2026-05-03anda.C_CLASS_GROUPB)a1;selectC_GROUP_LINE,t.*fromtax_0009 t---------------调整后的取数(casewhen${cboMachine}!thenFIND_IN_SET(t4.C_GROUP_LINE,${cboMachine})0else${cboMachine}end)WITH-- 淋膜产出lm_output_linksas(selecttax0009.C_GROUP_LINE,top3230.*fromTop_3230 top3230innerjointax_0009 tax0009ontax0009.C_MACHINE_CDtop3230.C_MACHINE_IDinnerjointop_3240 top3240ontop3240.C_PAPERROLL_NOtop3230.C_PAPERROLL_NOwheretop3230.C_PROC_CD10028andtop3240.C_PAPERROLL_NOlikeL%and(tax0009.C_GROUP_LINE${cboMachineId}or${cboMachineId})and(top3230.C_CLASS_GROUP${cboClassGroup}or${cboClassGroup})andtop3230.D_OUTPUT_TIME${dateEditor0}ANDtop3230.D_OUTPUT_TIME${dateEditor1}),-- 淋膜产出汇总lm_tableas(selectop.D_OUTPUT_TIME,op.C_GROUP_LINE,op.C_CLASS_GROUP,count(1)lmjs,sum(N_WGT)lmwgtfromlm_output_links opgroupbyop.D_OUTPUT_TIME,op.C_GROUP_LINE,op.C_CLASS_GROUP),-- 复卷产出明细fj_tableAS(selectmm.D_OUTPUT_TIME,mm.C_GROUP_LINE,mm.C_class_group,count(1)asfjjs,sum(N_WGT)asfjwgtfrom(selectdistinctC.C_BAR_CODE,c.D_OUTPUT_TIME,tax0009.C_GROUP_LINE,a.C_class_group,c.N_WGTfromtop_3240 ainnerjointop_3130 bona.C_BAR_CODEb.C_OLD_BAR_CODEinnerjointop_3240 conb.C_OUTPUT_NOc.C_OUTPUT_NOinnerjointop_3230 dond.C_BAR_CODEc.C_BAR_CODEinnerjointax_0009 tax0009ontax0009.C_MACHINE_CDa.C_MACHINE_IDwherec.C_PROC_CD10004ANDd.C_WORK_TYPE复卷and(tax0009.C_GROUP_LINE${cboMachineId}or${cboMachineId})and(a.C_CLASS_GROUP${cboClassGroup}or${cboClassGroup})andc.D_OUTPUT_TIME${dateEditor0}ANDc.D_OUTPUT_TIME${dateEditor1})mmgroupbymm.D_OUTPUT_TIME,mm.C_GROUP_LINE,mm.C_class_group),-- 最终结果合并淋膜和复卷数据result_tableas(SELECTCOALESCE(lm.D_OUTPUT_TIME,fj.D_OUTPUT_TIME)ASD_OUTPUT_TIME,COALESCE(lm.C_GROUP_LINE,fj.C_GROUP_LINE)ASC_GROUP_LINE,COALESCE(lm.C_CLASS_GROUP,fj.C_CLASS_GROUP)ASC_CLASS_GROUP,COALESCE(lm.lmjs,0)ASlmjs,COALESCE(lm.lmwgt,0)ASlmwgt,COALESCE(fj.fjjs,0)ASfjjs,COALESCE(fj.fjwgt,0)ASfjwgtFROMlm_table lmLEFTJOINfj_table fjONlm.D_OUTPUT_TIMEfj.D_OUTPUT_TIMEANDlm.C_GROUP_LINEfj.C_GROUP_LINEANDlm.C_CLASS_GROUPfj.C_CLASS_GROUP),result_table1as(selectt.d_output_time,t.c_group_line,t.c_class_group,sum(t.lmjs)lmjs,sum(t.fjjs)fjjs,sum(t.lmwgt)lmwgt,sum(t.fjwgt)fjwgtfromresult_table tgroupbyt.d_output_time,t.c_group_line,t.c_class_group)select*,(selectsum(t2.fjjs)/sum(t2.lmjs)fromresult_table1 t2wheret2.d_output_timet1.d_output_timeandt2.c_group_linet1.c_group_line)aslmlvfromresult_table1 t1orderbyt1.d_output_time,t1.c_group_line,t1.c_class_group----------------------脚本验证WITH-- 淋膜产出lm_output_linksas(selecttax0009.C_PLANT_CD,tax0009.C_GROUP_LINE,top3230.D_OUTPUT_TIME,top3230.C_CLASS_GROUP,top3230.N_WGTfromTop_3230 top3230innerjointax_0009 tax0009ontax0009.C_MACHINE_CDtop3230.C_MACHINE_IDinnerjointop_3240 top3240ontop3240.C_PAPERROLL_NOtop3230.C_PAPERROLL_NOwheretop3230.C_PROC_CD10028andtop3240.C_PAPERROLL_NOlikeL%and(tax0009.C_GROUP_LINEJXLM07)and(top3230.C_CLASS_GROUPB)andtop3230.D_OUTPUT_TIME2026-05-02ANDtop3230.D_OUTPUT_TIME2026-05-03),-- 淋膜产出汇总lm_tableas(selectop.C_PLANT_CD,op.D_OUTPUT_TIME,op.C_GROUP_LINE,op.C_CLASS_GROUP,count(1)lmjs,sum(N_WGT)lmwgtfromlm_output_links opgroupbyop.C_PLANT_CD,op.D_OUTPUT_TIME,op.C_GROUP_LINE,op.C_CLASS_GROUP),-- 复卷产出明细fj_tableAS(selectmm.D_OUTPUT_TIME,mm.C_GROUP_LINE,mm.C_class_group,count(1)asfjjs,sum(N_WGT)asfjwgtfrom(selectdistinctC.C_BAR_CODE,c.D_OUTPUT_TIME,tax0009.C_GROUP_LINE,a.C_class_group,c.N_WGTfromtop_3240 ainnerjointop_3130 bona.C_BAR_CODEb.C_OLD_BAR_CODEinnerjointop_3240 conb.C_OUTPUT_NOc.C_OUTPUT_NOinnerjointop_3230 dond.C_BAR_CODEc.C_BAR_CODEinnerjointax_0009 tax0009ontax0009.C_MACHINE_CDa.C_MACHINE_IDwherec.C_PROC_CD10004ANDd.C_WORK_TYPE复卷and(tax0009.C_GROUP_LINEJXLM07)and(a.C_CLASS_GROUPB)andc.D_OUTPUT_TIME2026-05-02ANDc.D_OUTPUT_TIME2026-05-03)mmgroupbymm.D_OUTPUT_TIME,mm.C_GROUP_LINE,mm.C_class_group),-- 最终结果合并淋膜和复卷数据result_tableas(SELECTlm.C_PLANT_CDASC_PLANT_CD,COALESCE(lm.D_OUTPUT_TIME,fj.D_OUTPUT_TIME)ASD_OUTPUT_TIME,COALESCE(lm.C_GROUP_LINE,fj.C_GROUP_LINE)ASC_GROUP_LINE,COALESCE(lm.C_CLASS_GROUP,fj.C_CLASS_GROUP)ASC_CLASS_GROUP,COALESCE(lm.lmjs,0)ASlmjs,COALESCE(lm.lmwgt,0)ASlmwgt,COALESCE(fj.fjjs,0)ASfjjs,COALESCE(fj.fjwgt,0)ASfjwgtFROMlm_table lmLEFTJOINfj_table fjONlm.D_OUTPUT_TIMEfj.D_OUTPUT_TIMEANDlm.C_GROUP_LINEfj.C_GROUP_LINEANDlm.C_CLASS_GROUPfj.C_CLASS_GROUP),result_table1as(selectt.d_output_time,t.c_group_line,t.c_class_group,sum(t.lmjs)lmjs,sum(t.fjjs)fjjs,sum(t.lmwgt)lmwgt,sum(t.fjwgt)fjwgtfromresult_table tgroupbyt.d_output_time,t.c_group_line,t.c_class_group)select*,(selectsum(t2.fjjs)/sum(t2.lmjs)fromresult_table1 t2wheret2.d_output_timet1.d_output_timeandt2.c_group_linet1.c_group_line)aslmlvfromresult_table1 t1orderbyt1.d_output_time,t1.c_group_line,t1.c_class_group三、效果展示四、用法总结