2013-02-09 44 views
0

我想知道是否可以基于逗号分隔值列表创建图表/图形。只有一个系列,这将是一个迷你图表,所以我真的不在乎看到任何一个轴......只是一条线向上或向下。基于CSV字符串的SSRS 2008 R2 Sparkline

从数据库表输入示例:1,2,3,4,5 本示例应生成1行,其值从左向右增加。

如果需要,我打开SSRS中的自定义代码来完成此操作。

谢谢!

回答

0

在SSRS中,您只能将图表指向数据集。 我建议你转换您的逗号分隔的数据转换成XML,然后撕碎你的XML数据转换成这样的关系数据:

WITH ChartData AS 
(
    SELECT '1,3,5,4' AS YValues 
), 
ShrededChartData AS 
(
    SELECT Y.value('.','int') AS YValues 
    FROM 
    (
     SELECT CAST(N'<root><r>' + REPLACE(YValues,',','</r><r>') + '</r></root>' AS XML) XMLValues 
     FROM ChartData 
    ) AS XMLChartData 
    CROSS APPLY XMLValues.nodes('//root/r') AS XmlTable(Y) 
) 
SELECT YValues 
FROM ShrededChartData 

然后在此基础上查询创建数据集,该数据集指向你的图。

+0

谢谢罗马。尽管这不是XML数据。这将是来自数据库列的数据(以字符串形式存储)。所以图表可以基于数据集,但不知何故我需要解析出CSV字符串(不在数据库中......我知道分割和东西从CSV数据获取行)。 – thomas 2013-02-11 20:53:02

+0

我没有看到问题,在我的查询中,我将逗号分隔值转换为xml,为什么你不能这样做?你能描述一下你从CSV获取数据的方式吗? Meybe之后我可以给你更好的答案。 – 2013-02-11 21:03:16

+0

这不是一个CSV文件...只是逗号分隔的字符串值。数据库列包含作为varchar(max)存储的“1,2,3,4,5”。数据集中只有1行数据存在...不像您的示例中有多行。 – thomas 2013-02-11 21:38:58