我的ERP中有一个表,其中包含我们制造的产品的路由(称为路由)。每个产品都有独特的路由步骤,其中包含完成单个单元所需的设置时间和周期时间等信息。我需要做的是返回一个按部件号分组的表格,该表格显示给定部件号的总循环时间。如果表中的单位已经在几个小时内就不会出现问题。遗憾的是/幸运的是,我们的ERP允许在许多不同的单位中指定循环时间。当然这个单位在表格中可用,但我正在努力编写一个查询,该查询首先从每小时(大多数情况下)部件转换为每个部件的小时数,然后对每个路由步骤的结果求和并返回按部分分组的数据数。我在格式化表格时遇到问题,而且我的声誉不够高,无法添加图像,因此我无法显示数据的外观。
以下是我在PowerPivot中用于转换为小时的公式。
= IF([CycleUnit] =" P",1.0 / [CycleTime],IF([CycleUnit] =" M",[CycleTime] /60.0,IF([CycleUnit] ] =" H",[CycleTime],BLANK())))
我是SQL新手,非常感谢任何帮助。
答案 0 :(得分:0)
正如其他人所提到的,了解您的数据库系统会有所帮助。
这样的事情:
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作为参数并返回转换后的值。
答案 1 :(得分:0)
案例陈述非常简单的时间
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;