渣骑 发表于 2025-6-11 13:07:34

sql server 数据集分组,每组数据内部进行排序、过滤

 
/*这是一个用于筛选特定生产工单相关数据的SQL脚本,分为公共表表达式(CTE)和临时表创建两部分 */ -- 步骤1:定义公共表表达式(CTE)用于数据排序 WITH RankedData AS (   SELECT       MO.ACTUAL_COMPLETE_DATE,       -- 工单实际完成日期      MITEM.ITEM_CODE AS MItemCode,   -- 主物料的编码(来自MO表关联的ITEM表)   CITEM.ITEM_CODE AS CItemCode,   -- 子物料的编码(来自MO_D表关联的ITEM表)   MO_D.ISSUED_QTY AS 领料数,       -- 物料发放数量      MO.COMPLETED_QTY AS 入库,      -- 工单完成数量      -- 按物料组合的最新日期生成行号(用于后续筛选最近3条记录)   ROW_NUMBER() OVER (       PARTITION BY MITEM.ITEM_CODE, CITEM.ITEM_CODE-- 按主/子物料组合分区      ORDER BY MO.ACTUAL_COMPLETE_DATE DESC         -- 按完成日期倒序排列       ) AS RowNum    FROM MO    -- 主工单表   -- 关联主物料信息    JOIN ITEM MITEM ON MITEM.ITEM_BUSINESS_ID = MO.ITEM_ID    -- 左联工单明细表(允许空值)   LEFT JOIN MO_D ON MO.MO_ID = MO_D.MO_ID    -- 关联子物料信息(必须存在)   JOIN ITEM CITEM ON MO_D.ITEM_ID = CITEM.ITEM_BUSINESS_ID    WHERE MO.ACTUAL_COMPLETE_DATE < @StartDate-- 筛选指定日期前的记录    and LEFT(CITEM.ITEM_CODE ,1) != '1' -- 排除子物料编码以1开头(返工工单)   and LEFT(CITEM.ITEM_CODE ,1) != '3' -- 排除子物料编码以3开头(成型工单)   and LEFT(CITEM.ITEM_CODE ,1) != '4' -- 排除子物料编码以4开头(成型工单)) -- 步骤2:将筛选结果存入临时表SELECT    MItemCode,   -- 主物料编码    CItemCode,   -- 子物料编码    领料数,         -- 发放数量    入库         -- 完成数量 INTO #temp       -- 创建临时表存储结果 FROM RankedData WHERE RowNum

挠溃症 发表于 2025-12-5 17:09:34

感谢分享,下载保存了,貌似很强大

啖曼烟 发表于 2025-12-13 03:52:07

感谢发布原创作品,程序园因你更精彩

全叶农 发表于 2025-12-31 04:53:30

感谢分享,学习下。

计海龄 发表于 2026-1-3 18:49:23

收藏一下   不知道什么时候能用到

少屠 发表于 2026-1-17 14:06:38

前排留名,哈哈哈

晁红叶 发表于 2026-1-17 22:17:44

谢谢楼主提供!

轮达 发表于 2026-1-18 10:17:52

鼓励转贴优秀软件安全工具和文档!

郁兰娜 发表于 2026-1-19 05:59:26

鼓励转贴优秀软件安全工具和文档!

泻缥 发表于 2026-1-21 03:05:24

喜欢鼓捣这些软件,现在用得少,谢谢分享!

叶芷雁 发表于 2026-1-23 02:19:14

感谢分享

颓哀 发表于 2026-1-26 21:45:38

谢谢分享,试用一下

轩辕娅童 发表于 2026-1-28 05:00:11

新版吗?好像是停更了吧。

钤凑讪 发表于 2026-1-28 18:02:13

感谢分享,下载保存了,貌似很强大

狙兕 发表于 2026-1-29 06:18:23

谢谢分享,辛苦了

吉芷雁 发表于 2026-2-5 05:55:40

收藏一下   不知道什么时候能用到

劳暄美 发表于 2026-2-9 21:23:51

感谢分享,下载保存了,貌似很强大

段干叶农 发表于 2026-2-10 02:52:08

懂技术并乐意极积无私分享的人越来越少。珍惜

勺缓曜 发表于 2026-2-11 09:46:01

不错,里面软件多更新就更好了

喳谍 发表于 2026-2-24 02:20:55

这个好,看起来很实用
页: [1] 2
查看完整版本: sql server 数据集分组,每组数据内部进行排序、过滤