SSRS图:从SQL查询中的不同日期检索值

时间:2017-05-02 08:59:56

标签: sql-server date reporting-services graph ssrs-2008

我使用以下查询从4个不同日期检索快照值:-1天(最晚), - 2天, - 3天和--40天(尚未实施)。

SELECT [SnapshotDate]
      ,[SnapshotKey]
      ,[info1]
      ,[info2]
      ,[info3]
FROM [Database].[dbo].[Values]
WHERE [SnapshotDate] >= DATEADD(day,-3, GETDATE())
AND [SnapshotKey] = 'Some text here'

这导致以下图表:

enter image description here

查询首先不是正确的,因为它显示4个值,此时应该只显示3。其次,我想显示40天前的最后一张快照,如图所示。

我尝试了一些不同的查询,但没有设法弄清楚如何正确地执行此操作。

[SnapshotKey] = SELECT DATEADD(day,-40,getdate())

上述查询在理论上给出了正确的答案。但是,当我在查询中使用它时,没有结果。我相信这可能是由于没有日期转换或我使用" day"在我的查询中。我不确定。

有什么建议吗?

编辑:

我也试过使用以下但没有运气(没有结果):

CONVERT(date, [SnapshotDate]) = CONVERT(date, DATEADD(day,-40, GETDATE()))

1 个答案:

答案 0 :(得分:1)

我不确定您的日期值是什么,但我猜这个报告是在5月2日运行的。 如果这是正确的,那么您需要更改范围以排除日期差异为零的位置。我个人在这种情况下使用DATEDIFF,因为它更容易为我想象。

尝试将where子句更改为类似的内容。

WHERE (DATEDIFF(day, getdate(),[SnapshotDate]) BETWEEN -3 AND -1
    OR DATEDIFF(day, getdate(), [SnapshotDate]) = -40)
    AND [SnapshotKey] = 'Some text here'