我希望产生我的商店效率的结果。要做到这一点,我需要从3个不同的表JOMAST,JODRTG和INRTGS的数据。因此,我提出了以下查询:
select jomast.fpartno AS 'Part Number',
JODRTG.foperno AS 'OP Number',
JODRTG.fopermemo As ' Description',
JODRTG.fpro_id AS 'Work Center',
jodrtg.fprod_tim AS ' Act. Production Time',
inrtgs.fuprodtime AS 'Est. Prodution Time'
from jodrtg
Left join jomast on jodrtg.fjobno = jomast.fjobno
left join inrtgs on jomast.fpartno = inrtgs.fpartno
现在我需要做的是计算出法案的平均值。生产时间。并将其精确到包含该部件的所有运算号的部件号。
当我尝试Group By JOMAST.fpartno
时,我得到了一个错误,它不能使用and outer列。如果我对工序编号进行分组,则每个部件的所有工序10都将被合并。这不是我们想要的结果。
谁能给我指个方向,我需要去实现我的结果?
发布于 2017-07-19 01:00:26
听起来您想让多个行都显示相同的jodrtg.fpartno
,都显示不同的jodrtg.fprod_tim
,但都显示jodrtg.fprod_tim
的平均值(相同),是吗?
如果是,则添加:
AVG(jodrtg.fprod_tim) OVER(PARTITION BY jodrtg.fpartno) as avg_for_all_fprod_tim
作为您选择的列列表中的一列。
有关更多信息,您可以google PARTITION BY,但可以将其视为对数据执行GROUP BY x,AVG(y) (或sum,max,诸如此类)的指令,然后将AVG放入x所在的每一行的行数据中。
从本质上讲,这与编写一个较小的(SELECT jodrtg.fpartno, avg(jodrtg.fprod_tim) as avg_for_all_frod_tim FROM blah GROUP BY jodrtg.fpartno)
子查询,然后将其连接回主查询是相同的
https://stackoverflow.com/questions/45172935
复制相似问题