我尝试从我的16台机器中展示产生最多浪费的最高机器。经过大量的努力,我已经做到了这一点。
现在我必须做出最高问题的前5名。并且这些问题列在数据库的同一目录中:
我该怎么做?
我使用的是SQL Server Report Builder。
我无法添加图片,我会尝试这样做:
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
答案 0 :(得分:1)
因此,对于最差的操作机器,我们需要按频率降序列出问题列表。我将您真正的大查询设置为数据集,并使用它来填充名为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的问题数除以数据集Problems中的全部问题数。将该单元格的Format属性设置为P1
,以百分比形式显示为百分比。
第二列只是字段CounterName
。