带条件公式和分组的SQL查询
我在ERP中有一个表,其中包含我们制造的产品的工艺路线(称为工艺路线)。每个产品都有独特的工艺步骤,其中包含完成单个装置所需的设置时间和周期时间等信息。我需要做的是返回一个按零件号分组的表,该表显示给定零件号的总循环小时数。如果表中的单位已经以小时为单位,这将不是问题。不幸/幸运的是,我们的ERP允许在许多不同的单位中指定周期时间。当然,这个单位在表中是可用的,但我正在努力编写一个查询,该查询将首先从(在大多数情况下)每小时零件数转换为每零件小时数,然后对每个路由步骤的结果求和,并返回按零件号分组的数据。我在格式化表格时遇到问题,而且我的声誉不足以添加图像,因此无法显示数据的外观 以下是我在PowerPivot中使用的转换为小时的公式 =如果([CycleUnit]=“p”,1.0/[CycleTime],如果([CycleUnit]=“M”,[CycleTime]/60.0,如果([CycleUnit]=“H”,[CycleTime],BLANK()))带条件公式和分组的SQL查询,sql,conditional,grouping,Sql,Conditional,Grouping,我在ERP中有一个表,其中包含我们制造的产品的工艺路线(称为工艺路线)。每个产品都有独特的工艺步骤,其中包含完成单个装置所需的设置时间和周期时间等信息。我需要做的是返回一个按零件号分组的表,该表显示给定零件号的总循环小时数。如果表中的单位已经以小时为单位,这将不是问题。不幸/幸运的是,我们的ERP允许在许多不同的单位中指定周期时间。当然,这个单位在表中是可用的,但我正在努力编写一个查询,该查询将首先从(在大多数情况下)每小时零件数转换为每零件小时数,然后对每个路由步骤的结果求和,并返回按零件号分
我是SQL新手,非常感谢您的帮助。正如其他人所提到的,了解您的数据库系统会很有帮助 像这样的东西怎么样:
select sum( case cycleUnit
when 'P' then 1.0/cycleTime
when 'M' then cycleTime/60.0
when 'H' then cycleTime
end
) as cycleHours
from Routing
group by partNumber
case语句处理您的转换。或者,您可以尝试创建一个标量函数,该函数接受cycleTime和unit作为参数,并返回转换后的值。对于case语句来说,这是非常简单的时间
select
part_no,
sum(case cycle_unit
when 'P' then 1.0/cycle_time
when 'M' then cycle_time/60
when 'H' then cycle_time
end) as work_hours
from routing
group by part_no;
添加数据库标记后端是什么数据库系统?