我正在使用SSRS,但无法创建图形图表来显示数据。我的数据集非常简单,因为它只有一列是日期时间字段(称为CreatedOn
)。
我的SQL查询是:
SELECT [CreatedOn]
FROM [Incident]
WHERE CreatedOn > DATEADD(m,-11, DATEADD(
month, DATEDIFF(month, 0,CURRENT_TIMESTAMP), 0))
我的目标是让查询结果显示在图表中,并按年份和月份进行分组,以及排序。例如,我应该能够看到在2005年2月创建了40个事件。这40个事件将以图形方式表示为单个条形图(它是条形图),数字40位于顶部(或某处)。
我的问题是我的图表显示为完全空白,或报告无法运行。当它无法运行时,我收到的错误是:
the value expression for field 'CreatedOn' contains an error: conversion from string 'CreatedOn' to type 'Date' is not valid
。
我尝试在CreatedOn
字段上使用SSRS表达式,例如CDate()
和FormateDateTime()
。这确实会使报告运行,但图表显示为空白。我不认为该字段必须在SSRS中进行格式化或转换,因为它已经是数据库级别的日期时间字段。我尝试了大约10种不同的分组和排序组合,但我的图表总是显示为空白。我甚至在分组和排序表达式中使用CDate()
等等,这是图表的一部分。
如何让我的条形图工作(a.k.a.显示日期时间,分组和排序)?
答案 0 :(得分:0)
我将假设:
您提取的数据多于“CreatedOn”字段。
一个。因为如果你不这样做,就很难创建一个图表,因为你没有别的东西可以比较它。
如果这是一个准确的假设,这里有一个如何创建图表并按日期格式化数据的示例。
在设计图表时,您需要考虑很多因素。首先,我想确保尽可能少的空数据。这导致图表表现得很不稳定(至少从我的经验来看)。
其次是如何表示数据。 当我们考虑图表和组时,我们需要考虑几件事情。 有类别组,系列组,然后是值。
According to Microsoft:图表与Matrix的直接相似。他们的行为方式相同:
设置图表: 如果我们想要按年份和月份排序的事件数量,它可能看起来像这样:
分类年份(您可以在此处按表达式使用您的论坛)=Year(Fields!CreatedOn.Value)
事件将出现在值部分=Count(Fields!Incidents.Value)
一旦你有了工作并显示数据,我就会开始添加本月的数据。再次考虑如何显示数据。然后,您可以使用月份功能在另一个类别下添加第二个分组。
Another Useful link on charts(我知道这有点旧,但它的细节仍然相关)
* 旁注 :处理日期时,如果SSRS没有将某些内容识别为日期,则可能会有点棘手。这是我在处理日期时使用的有用链接。 Dates
我希望这有帮助!
答案 1 :(得分:0)
问题是CreatedOn
日期字段未正确定义。
我的数据源是使用依赖于参数的表达式定义的,使用表达式:="Data Source=sql01;" & "Initial Catalog=" & Parameters!ParentID.Value
。由于必须在报表的运行时定义数据集,因此无法使用“刷新字段”按钮刷新数据集中的字段。
我认为我可以通过手动定义CreatedOn
字段来解决这个问题。在第一次尝试时,SSRS在运行时抛出一个错误,声称我正在尝试将字符串转换为日期,这基本上意味着它将数据集中定义的CreatedOn
字段视为字符串。所以我接着尝试在字段的定义中使用CDate()
表达式,但这给我留下了一个完全空白的图。
解决方案是:
Data Source=sql01;Initial Catalog=MyDatabaseName
)