LOGO 首页 OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 技术文档 其他文档  
 
网站管理员

[点晴模切ERP]如何利用一句SQL写出多级BOM层级关系?

Ccoffee
2026年6月6日 12:23 本文热度 69
:如何利用一句SQL写出多级BOM层级关系?

WITH BOM_CTE AS (

    -- 根节点:成品自身可以删除

    SELECT 

'ZF-003' AS top_product,

        'ZF-003' AS product_code,

        'ZF-003' AS sub_product_code,

        CAST(1 AS DECIMAL(18,8)) AS sub_product_per_unit_dosage,

        0 AS Level,

        CAST('0' AS VARCHAR(MAX)) AS SortPath,

        CAST(1 AS DECIMAL(18,8)) AS CumulativeQty

    

    UNION ALL

    

    -- 锚点:顶层物料的直接子级

    SELECT 

bom.product_code as top_product,

        bom.product_code,

        bom.sub_product_code,

        CAST(bom.sub_product_per_unit_dosage AS DECIMAL(18,8)) AS sub_product_per_unit_dosage,  -- 统一转换

        1 AS Level,

        CAST(bom.id AS VARCHAR(MAX)) AS SortPath,

        CAST(bom.sub_product_per_unit_dosage AS DECIMAL(18,8)) AS CumulativeQty

    FROM scm_bom_list bom

    WHERE bom.product_code = 'ZF-003'

    

    UNION ALL

    

    -- 递归:继续展开更深层级

    SELECT 

cte.top_product,

        bom.product_code,

        bom.sub_product_code,

        CAST(bom.sub_product_per_unit_dosage AS DECIMAL(18,8)) AS sub_product_per_unit_dosage,  -- 统一转换

        cte.Level + 1,

        CAST(cte.SortPath + '-' + CAST(bom.id AS VARCHAR(MAX)) AS VARCHAR(MAX)),

        CAST(cte.CumulativeQty * bom.sub_product_per_unit_dosage AS DECIMAL(18,8))

    FROM scm_bom_list bom

    INNER JOIN BOM_CTE cte ON bom.product_code = cte.sub_product_code

    WHERE cte.Level >= 1

)

SELECT 

top_product,

product_code,

    REPLICATE('   ', Level) + sub_product_code AS TreeItem,

    Level,

    sub_product_per_unit_dosage,

    CumulativeQty,

SortPath

FROM BOM_CTE

ORDER BY SortPath

OPTION (MAXRECURSION 100);

​展现的表格内容如下:

 




点晴模切ERP更多信息:https://moqie.clicksun.cn,联系电话:4001861886

该文章在 2026/6/6 12:23:59 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2026 ClickSun All Rights Reserved  粤ICP备13012886号-2  粤公网安备44030602007207号