代码之家  ›  专栏  ›  技术社区  ›  JosephDoggie

SSRS rdl preview显示带有错误值的日期,尽管SQL查询应该排除它

  •  0
  • JosephDoggie  · 技术社区  · 6 年前

    rdl文件中查询的xml为:

      <Query>
        <DataSourceName>ourDataSource</DataSourceName>
        <CommandText>
          use ourDataBase
          ----------------------------------------
          select convert(date, Date1) as ourDate1, count(*) as ourCountForDate
          from ourDataBase.dbo.ourTable
          where
          (
              (Date1 between (getDate()-365) and (getDate()+1) )
          )
          group by convert(date, Date1)
          order by convert(date, Date1)
        </CommandText>
        <rd:UseGenericDesigner>true</rd:UseGenericDesigner>
      </Query>
    

    当直接在SSMS中使用TSQL时,这个查询在SQL数据库中工作得很好。

    但是,数据库中有一个奇怪年份的零散值(例如7654),它显示在“preview”中rdl文件的结果中,但是 在SSMS的SQL查询结果中。

    我尝试过很多变体,比如大于或等于,等等,但是这个偏离的值总是出现。

    有什么想法吗?

    2 回复  |  直到 6 年前
        1
  •  2
  •   Utrolig    6 年前

    最好在SQLServer中创建一个存储过程,然后让SSRS调用它。也可以表现得更好。这使数据控件完全保留在SQLServer中。

        2
  •  1
  •   JosephDoggie    6 年前

    对于那些不想使用存储过程(例如,由于必须从不同的数据库区域迁移存储过程)的人,这对我很有用:

    删除相关的“.data”文件有助于“清理”和“重建”项目。

    你也可以尝试这样的方法,比如确保一年从2开始(或者对于一些人来说是少于3)。 以下是如何从2开始检查: