在 SSRS 中绘制 "Excel-ready"(即 PIVOTED)数据
Graphing "Excel-ready" (i.e. PIVOTED) data in SSRS
我们有一组冗长而复杂的 SQL 过程,这些过程当前将数据输出到 Excel 准备好图表,无需任何修改,这里是一个示例结果集:
SELECT 'WE:27/12/2015' AS ID, 63 AS [Brought Forward], 16 AS [New Calls], 18 AS [Closed Calls], 57 AS [Carried Forward] UNION
SELECT 'WE:03/01/2016', 57, 13, 14, 55 UNION
SELECT 'WE:10/01/2016', 55, 39, 31, 55 UNION
SELECT 'WE:17/01/2016', 55, 45, 42, 50
在 Excel 中创建此图实际上是 two-clicks:
我们正在尝试使用 BIDS 和 Report Builder 在 SSRS 中实现这一点,即 "software tools commonly used by programmers"(所以希望这个问题是关于主题的!即 this meta post 十指交叉)
然而,当我们尝试在 BIDS 中创建图表时,我们看到以下似乎需要 "UnPivoted" 数据的界面:
因为我们的数据已经为 Excel 准备好了(即我们已经有每周每个指标的调用)- 我们看不到这将如何工作。
SSRS 是否能够使用给定的数据集输出上述图表,或者我们是否必须 "unpivot" 我们的数据用于 SSRS?
我们已经尝试了各种组合,但似乎无法做到正确,这是我们史诗般失败的一个例子:
SSRS 迫使我们将某些东西作为聚合值,但我们没有值 "field" 因为数据已经过透视?
我玩过它,但如果不对它进行 UNPIVOTing,就无法匹配您想要的输出。 :悲伤的脸:
我不明白如果不对它进行 UNPIVOTing,你将如何做到这一点。
SELECT ID, calls, CallTypes
FROM (SELECT 'WE:27/12/2015' AS ID, 63 AS [Brought Forward], 16 AS [New Calls], 18 AS [Closed Calls], 57 AS [Carried Forward]
UNION
SELECT 'WE:03/01/2016', 57, 13, 14, 55
UNION
SELECT 'WE:10/01/2016', 55, 39, 31, 55
UNION
SELECT 'WE:17/01/2016', 55, 45, 42, 50) AS t1
UNPIVOT (calls FOR CallTypes IN ([Brought Forward], [New Calls], [Closed Calls], [Carried Forward])) AS ct
我们有一组冗长而复杂的 SQL 过程,这些过程当前将数据输出到 Excel 准备好图表,无需任何修改,这里是一个示例结果集:
SELECT 'WE:27/12/2015' AS ID, 63 AS [Brought Forward], 16 AS [New Calls], 18 AS [Closed Calls], 57 AS [Carried Forward] UNION
SELECT 'WE:03/01/2016', 57, 13, 14, 55 UNION
SELECT 'WE:10/01/2016', 55, 39, 31, 55 UNION
SELECT 'WE:17/01/2016', 55, 45, 42, 50
在 Excel 中创建此图实际上是 two-clicks:
我们正在尝试使用 BIDS 和 Report Builder 在 SSRS 中实现这一点,即 "software tools commonly used by programmers"(所以希望这个问题是关于主题的!即 this meta post 十指交叉)
然而,当我们尝试在 BIDS 中创建图表时,我们看到以下似乎需要 "UnPivoted" 数据的界面:
因为我们的数据已经为 Excel 准备好了(即我们已经有每周每个指标的调用)- 我们看不到这将如何工作。
SSRS 是否能够使用给定的数据集输出上述图表,或者我们是否必须 "unpivot" 我们的数据用于 SSRS?
我们已经尝试了各种组合,但似乎无法做到正确,这是我们史诗般失败的一个例子:
SSRS 迫使我们将某些东西作为聚合值,但我们没有值 "field" 因为数据已经过透视?
我玩过它,但如果不对它进行 UNPIVOTing,就无法匹配您想要的输出。 :悲伤的脸:
我不明白如果不对它进行 UNPIVOTing,你将如何做到这一点。
SELECT ID, calls, CallTypes
FROM (SELECT 'WE:27/12/2015' AS ID, 63 AS [Brought Forward], 16 AS [New Calls], 18 AS [Closed Calls], 57 AS [Carried Forward]
UNION
SELECT 'WE:03/01/2016', 57, 13, 14, 55
UNION
SELECT 'WE:10/01/2016', 55, 39, 31, 55
UNION
SELECT 'WE:17/01/2016', 55, 45, 42, 50) AS t1
UNPIVOT (calls FOR CallTypes IN ([Brought Forward], [New Calls], [Closed Calls], [Carried Forward])) AS ct