【问题标题】:100% bar chart SQL - Yes/No Answers100% 条形图 SQL - 是/否答案
【发布时间】:2017-08-09 10:29:44
【问题描述】:

Sql Server 2016/报表设计器:

不确定这是否是放置此问题的正确标题,如果我错了,请纠正我。

我有以下几点:

 SELECT [aField6] AS [CleanAndTidy],
        [aField10] AS [HandWash],
        [aField8] AS [PPEStorage],
        [aField14] AS [PipesAndFittings],
        [aField12] AS [COSHH]
 FROM vAdvF_265
 GROUP BY [aField6], [aField10], [aField8], [aField14], [aField12]

答案如下:

CleanAndTidy    HandWash    PPEStorage  PipesAndFittings    COSHH
No                 No            No           No            No
No                 Yes           Yes          Yes           Yes
Yes                No            No           Yes           Yes
Yes                No            Yes          Yes           Yes
Yes                Yes           No           No            Yes
Yes                Yes           No           Yes           No
Yes                Yes           Yes          No            No
Yes                Yes           Yes          Yes           No
Yes                Yes           Yes          Yes           Yes

我希望将其放入每列 100% 堆叠的条形图(是/否时为 50/50),但在 SSRS 中使用它时,我似乎无法找到将数据提供给图表。

我也试过了:

    SELECT [Type1], [Count] -- YES Count
 FROM (
 SELECT 
     SUM(CASE WHEN [aField6]='yes' THEN 1 ELSE 0 END) AS [CleanAndTidyYes],
     SUM(CASE WHEN [aField10]='yes' THEN 1 ELSE 0 END) AS [HandWashYes],
     SUM(CASE WHEN [aField8]='yes' THEN 1 ELSE 0 END) AS [PPEStorageYes],
     SUM(CASE WHEN [aField14]='yes' THEN 1 ELSE 0 END) AS [PipesAndFittingsYes],
     SUM(CASE WHEN [aField12]='yes' THEN 1 ELSE 0 END) AS [COSHHYes]
     FROM vAdvF_265
 ) sums
 UNPIVOT
 ([Count] FOR [Type1] IN
     ([CleanAndTidyYes], [HandWashYes], [PPEStorageYes], [PipesAndFittingsYes], [COSHHYes])
 ) AS unpivoted1

 UNION

 SELECT [Type], [Count] --NO Count
 FROM (
 SELECT 
     SUM(CASE WHEN [aField6]='no' THEN 1 ELSE 0 END) AS [CleanAndTidyNo],
     SUM(CASE WHEN [aField10]='no' THEN 1 ELSE 0 END) AS [HandWashNo],
     SUM(CASE WHEN [aField8]='no' THEN 1 ELSE 0 END) AS [PPEStorageNo],
     SUM(CASE WHEN [aField14]='no' THEN 1 ELSE 0 END) AS [PipesAndFittingsNo],
     SUM(CASE WHEN [aField12]='no' THEN 1 ELSE 0 END) AS [COSHHNo]
     FROM vAdvF_265
 ) sums
 UNPIVOT
 ([Count] FOR [Type] IN
     ([CleanAndTidyNo], [HandWashNo], [PPEStorageNo], [PipesAndFittingsNo], [COSHHNo])
 ) AS unpivoted1;

这给了我:

Type1                                                                                                                            Count
-------------------------------------------------------------------------------------------------------------------------------- -----------
CleanAndTidyNo                                                                                                                   2
CleanAndTidyYes                                                                                                                  18
COSHHNo                                                                                                                          3
COSHHYes                                                                                                                         17
HandWashNo                                                                                                                       7
HandWashYes                                                                                                                      13
PipesAndFittingsNo                                                                                                               2
PipesAndFittingsYes                                                                                                              18
PPEStorageNo                                                                                                                     4
PPEStorageYes                                                                                                                    16

虽然第二个给出了我所追求的计数,但我仍在努力将其放入 100% 图表中,而不是每列的是/否答案。

有人可以帮我指出正确的方向/提供任何建议或其他方法吗?

【问题讨论】:

    标签: reporting-services bar-chart


    【解决方案1】:

    为条形图值添加表达式。在表达式中添加如下代码:

    =SUM(IIF(Fields!CleanAndTidy.Value = "Yes", 1, 0))
    

    sum 函数将把数据集中每一行的总值相加。然后,您可以在其中添加 IIF 表达式以评估每一列并根据表达式返回一个值。在上面的示例中,如果 CleanAndTidy 为“是”,则返回 1。如果不是,则返回 0。最终结果将是“是”答案的计数。

    然后您可以冲洗并重复洗手等。冲洗并重复?得到它?

    【讨论】:

      猜你喜欢
      • 2015-01-04
      • 1970-01-01
      • 2021-12-30
      • 2019-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-31
      • 1970-01-01
      相关资源
      最近更新 更多