我尝试从我的16台机器中显示出产生最多废物的最高机器。经过大量的努力,我已经做到了。
现在,我必须做最高问题的前五项。这些问题在同一目录的数据库中列出:
我怎样才能做到这一点?
我使用SQL Server报表生成器。
我无法添加图片,我将尝试这样做:
Date CounterName calculationUnitsInitial
2016-04-26 00:00:00.000 Prod 6221
2016-04-26 00:00:00.000 Bad 0
2016-04-26 00:00:00.000 ba 0
2016-04-26 00:00:00.000 ba 0
2016-04-26 00:00:00.000 Ausg 6
2016-04-26 00:00:00.000 Au 0
2016-04-26 00:00:00.000 Bad 125
2016-04-26 00:00:00.000 Aus 8
2016-04-26 00:00:00.000 Band position 0
2016-04-26 00:00:00.000 Fe 0
2016-04-26 00:00:00.000 Fe 0
2016-04-26 00:00:00.000 Hu 124
2016-04-26 00:00:00.000 S 0
2016-04-26 00:00:00.000 Dr 0
2016-04-26 00:00:00.000 H 4
因此,对于最坏的运行机器,我们需要按频率降序列出问题列表。我会将您的大型查询设置为数据集,并使用该查询填充名为的隐藏参数的默认值Machine
。我们还需要两个参数DateFrom
,并DateTo
与它们的默认值设定的日期范围你感兴趣的内容。
然后,您的问题选择很容易:
SELECT CounterName, COUNT(*) AS Problems
FROM Problems
WHERE Machine = @Machine
AND ProblemDate >= @DateFrom AND ProblemDate <= @DateTo
GROUP BY CounterName
ORDER BY COUNT(*) DESC
现在,我们以故障发生的降序列出了该机器每种故障类型的数量。我们称这个数据集Problems
用两列将表添加到您的报告中。第一列将具有以下表达式:
=Fields!Problems.Value / SUM(Fields!Problems.Value, "Problems")
这会将CounterName的问题数除以数据集“问题”中的问题总数。将该单元格的“格式”属性设置P1
为以百分比显示,并保留一位小数。
第二列只是字段CounterName
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句