开始使用免费开始使用

组装一辆 BMW?

本练习要回答的问题是:在层级结构中直到第 3 层,构建整车所需的每个部件的总数量 Total 是多少?

您的任务是创建 CTE construction_Plan,用于跟踪部件的层级,并在字段 Total 中计算部件的总数量。该表包含字段 PartIDSubPartIDLevelComponentTotal。您需要考虑从第 1 层到第 3 层的所有部件。

本练习是课程的一部分

SQL Server 中的分层与递归查询

查看课程

练习说明

  • 定义包含必要字段的 construction_Plan
  • CTE 的锚点部分,用 Quantity 初始化 Total
  • 在递归部分,用子元素的 Quantity 增加 Total
  • 使用 SUM() 在按层级 ID 聚合后的信息上,对 Total 求和。

交互式实操练习

通过完成这段示例代码来试试这个练习。

-- Define CTE with the fields: PartID, SubPartID, Level, Component, Total
WITH ___ (___, ___, ___, ___, ___) AS (
	SELECT 
  		PartID,SubPartID,
  		0,
  		Component,
  		-- Initialize Total
  		___
	FROM partList
	WHERE PartID = '1'
	UNION ALL
	SELECT 
		CHILD.PartID, CHILD.SubPartID,
  		PARENT.Level + 1,
  		CHILD.Component,
  		-- Increase Total by the quantity of the child element
  		PARENT.___ + CHILD.___
	FROM construction_Plan PARENT, partList CHILD
  	WHERE CHILD.SubPartID = PARENT.PartID
	  AND PARENT.Level < 3)
      
SELECT 
    PartID, SubPartID,Component,
    -- Calculate the sum of total on the aggregated information
    ___(___)
FROM construction_Plan
GROUP BY PartID, SubPartID, Component
ORDER BY PartID, SubPartID;
编辑并运行代码