【问题标题】:Stacked column in SSRS ChartsSSRS 图表中的堆积列
【发布时间】:2017-10-15 17:17:27
【问题描述】:

我有一个包含以下数据的表:

DECLARE @Plan_Summary TABLE (Col1 INT,Col2 INT,Col3 INT)    

INSERT INTO @Plan_Summary VALUES (20,10,10)
INSERT INTO @Plan_Summary VALUES (20,10,10)
INSERT INTO @Plan_Summary VALUES (20,10,10)
INSERT INTO @Plan_Summary VALUES (8,10,10)
INSERT INTO @Plan_Summary VALUES (8,10,10)
INSERT INTO @Plan_Summary VALUES (8,10,10)
INSERT INTO @Plan_Summary VALUES (8,10,10)
INSERT INTO @Plan_Summary VALUES (4,10,10)
INSERT INTO @Plan_Summary VALUES (4,10,10)
INSERT INTO @Plan_Summary VALUES (4,10,10)
INSERT INTO @Plan_Summary VALUES (4,10,10)
INSERT INTO @Plan_Summary VALUES (4,10,10)
INSERT INTO @Plan_Summary VALUES (-10,10,10)
INSERT INTO @Plan_Summary VALUES (-20,10,10)
INSERT INTO @Plan_Summary VALUES (-2,10,10)
INSERT INTO @Plan_Summary VALUES (-7,10,10)
INSERT INTO @Plan_Summary VALUES (-15,10,10)

我必须将这些值绘制成条形图,并满足以下要求:

  1. 对于 Col1 时

    • 值在 15 到 25 之间 - 绿色
    • 值在 6 到 14 之间 - 蓝色
    • 值介于 0 和 5 之间 - 黄色
    • 红色小于 0。
  2. Col2 和 col3 始终为红色。

我在数据集中使用了以下代码:

SELECT SUM(CASE WHEN Col1 BETWEEN 15 AND 25 THEN 1 ELSE 0 END) AS Green,
       SUM(CASE WHEN Col1 BETWEEN 6 AND 14 THEN 1 ELSE 0 END) AS Blue,
       SUM(CASE WHEN Col1 BETWEEN 0 AND 5 THEN 1 ELSE 0 END) AS Yellow,
       SUM(CASE WHEN Col1 < 0 THEN 1 ELSE 0 END) AS Red,
       COUNT(Col2) AS Col2,COUNT(Col3) AS Col3
INTO #TMP
FROM @Plan_Summary

SELECT Val,Col
FROM (SELECT Green,Blue,Yellow,Red,Col2,Col3
      FROM #TMP) CSP
      UNPIVOT (VAL FOR COL IN(Green,Blue,Yellow,Red,Col2,Col3)) AS CSP

我在 SSRS 中添加了堆叠柱形图类型 - 但问题是如何将所有绿色、蓝色、黄色、红色列组合成一个堆叠列并确保它们获得正确的颜色?

谢谢。

【问题讨论】:

    标签: reporting-services charts


    【解决方案1】:

    在这种情况下,不要UNPIVOT您的数据。只需这样做:

    SELECT SUM(CASE WHEN Col1 BETWEEN 15 AND 25 THEN 1 ELSE 0 END) AS Green,
           SUM(CASE WHEN Col1 BETWEEN 6 AND 14 THEN 1 ELSE 0 END) AS Blue,
           SUM(CASE WHEN Col1 BETWEEN 0 AND 5 THEN 1 ELSE 0 END) AS Yellow,
           SUM(CASE WHEN Col1 < 0 THEN 1 ELSE 0 END) AS Red,
           COUNT(Col2) AS Col2,COUNT(Col3) AS Col3
    FROM @Plan_Summary
    

    然后,将每一列添加为图表中的一个值。见下文:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多