【发布时间】:2021-02-09 02:01:03
【问题描述】:
我正在尝试创建一个 100% 堆积条形图来显示我通过查询获得的各种计数的总数。我不知道如何使用分组来允许图表的 y 轴显示我拥有的总计的不同列名。我已经在单独的图表中创建了我想要的内容,但是因为 html 格式化所有内容的方式有一堆不需要的间距,我试图在一个图表中创建它。下面的例子
在此我只是得到我所拥有的列的总和,它根据状态为每个项目返回 1 或 0。然后对于剩余的 100%,我使用表达式从总数中减去它们。
=Sum(Count(Fields!Computer_Name.Value)) - Sum(Fields!ClientHealthEvaluation.Value)
我可以修改我的查询以在结果中对所有这些进行分组,然后只查询总数,但我仍然没有找到一种方法可以在一个条形图中实现这一点。我想知道是否有一种方法可以将所有这些显示在一个条形图中,y 轴组是单独的列,条形显示总数,因此它更清晰,或者至少知道一种更好的方法来构建所有这些单独的图表在图像中,使它们看起来更均匀。这可能吗?
--编辑 - 添加数据集样本
resourceID IsActiveDDR IsActivePolicyRequest IsActiveStatusMessages IsActiveHW IsActiveSW ClientHealthEvaluation
16784171 0 0 0 0 0 1
16784668 1 1 1 1 0 1
16784901 0 0 0 0 0 1
16785366 1 0 1 0 0 1
16786781 0 0 0 0 0 1
16786855 0 0 0 0 0 1
16787070 1 1 1 0 0 1
16787571 0 0 0 0 0 1
16787996 1 1 1 1 0 0
16788182 1 1 1 1 0 1
这是我目前拥有的数据,我在每一列上使用 sum 函数来获取总数。如果更简单,我可以像下面这样分组。
Total IsActiveDDR IsActivePolicyRequest IsActiveStatusMessages IsActiveHW IsActiveSW ClientHealthEvaluation
10 5 4 5 3 0 9
---编辑:按照建议更新了数据集,现在以更适合图表的方式格式化表格。
select
'Client Health Evaluation' as 'PolicyType',
'Success' as 'Status',
SUM(a.ClientHealthEvaluation) as 'Amount'
from(
Select
summ.Resourceid,
case summ.LastEvaluationHealthy when 1 then 1 else 0 end as 'ClientHealthEvaluation'
from v_CH_ClientSummary summ) a
UNION
select
'Client Health Evaluation' as 'PolicyType',
'Failure' as 'Status',
(Count(a.resourceid) - SUM(a.ClientHealthEvaluation)) as 'Amount'
from(
Select
summ.Resourceid,
case summ.LastEvaluationHealthy when 1 then 1 else 0 end as 'ClientHealthEvaluation'
from v_CH_ClientSummary summ) a
-------------
UNION
select
'Policy Request' as 'PolicyType',
'Success' as 'Status',
SUM(a.IsActivePolicyRequest) as 'Amount'
from(
Select
summ.Resourceid,
summ.IsActivePolicyRequest
from v_CH_ClientSummary summ) a
UNION
select
'Policy Request' as 'PolicyType',
'Failure' as 'Status',
(Count(a.resourceid) - SUM(a.IsActivePolicyRequest)) as 'Amount'
from(
Select
summ.Resourceid,
summ.IsActivePolicyRequest
from v_CH_ClientSummary summ) a
-------------
UNION
select
'Data Discovery' as 'PolicyType',
'Success' as 'Status',
SUM(a.IsActiveDDR) as 'Amount'
from(
Select
summ.Resourceid,
summ.IsActiveDDR
from v_CH_ClientSummary summ) a
UNION
select
'Data Discovery' as 'PolicyType',
'Failure' as 'Status',
(Count(a.resourceid) - SUM(a.IsActiveDDR)) as 'Amount'
from(
Select
summ.Resourceid,
summ.IsActiveDDR
from v_CH_ClientSummary summ) a
-------------
UNION
select
'Hardware Inventory' as 'PolicyType',
'Success' as 'Status',
SUM(a.IsActiveHW) as 'Amount'
from(
Select
summ.Resourceid,
summ.IsActiveHW
from v_CH_ClientSummary summ) a
UNION
select
'Hardware Inventory' as 'PolicyType',
'Failure' as 'Status',
(Count(a.resourceid) - SUM(a.IsActiveHW)) as 'Amount'
from(
Select
summ.Resourceid,
summ.IsActiveHW
from v_CH_ClientSummary summ) a
-------------
UNION
select
'Software Inventory' as 'PolicyType',
'Success' as 'Status',
SUM(a.IsActiveSW) as 'Amount'
from(
Select
summ.Resourceid,
summ.IsActiveSW
from v_CH_ClientSummary summ) a
UNION
select
'Software Inventory' as 'PolicyType',
'Failure' as 'Status',
(Count(a.resourceid) - SUM(a.IsActiveSW)) as 'Amount'
from(
Select
summ.Resourceid,
summ.IsActiveSW
from v_CH_ClientSummary summ) a
-------------
UNION
select
'Status Messages' as 'PolicyType',
'Success' as 'Status',
SUM(a.IsActiveStatusMessages) as 'Amount'
from(
Select
summ.Resourceid,
summ.IsActiveStatusMessages
from v_CH_ClientSummary summ) a
UNION
select
'Status Messages' as 'PolicyType',
'Failure' as 'Status',
(Count(a.resourceid) - SUM(a.IsActiveStatusMessages)) as 'Amount'
from(
Select
summ.Resourceid,
summ.IsActiveStatusMessages
from v_CH_ClientSummary summ) a
Order by PolicyType, Status desc
输出:
PolicyType Status Amount
ClientHealth Evaluation Success 13862
Client Health Evaluation Failure 210
Data Discovery Success 13967
Data Discovery Failure 105
Hardware Inventory Success 13854
Hardware Inventory Failure 218
Policy Request Success 14025
Policy Request Failure 47
Software Inventory Success 13713
Software Inventory Failure 359
Status Messages Success 14018
Status Messages Failure 54
图表:
【问题讨论】:
-
你能分享一个你的数据集样本吗?它应该很简单,但我怀疑您的数据集可能不合适
标签: sql-server reporting-services grouping bar-chart series