SSRS:字段在查询中显示正确但在报告预览中显示错误

HED*_*MON 6 sql t-sql sql-server reporting-services ssrs-2008-r2

我有以下查询:

SELECT TOP ( 10 )
        EMPLOYEE ,
        NAME ,
        SUM(QTYFINISHED) AS QTY ,
        SUM(HOURS) AS REALTIME ,
        SUM(PROCESSTIME * QTYFINISHED / PROCESSQTY / 60) AS CALCTIME ,
        SUM(PROCESSTIME * QTYFINISHED / PROCESSQTY / 60) / SUM(HOURS) AS EFFI
FROM    EMPLOYEE
GROUP BY EMPLOYEE ,
         NAME
ORDER BY Eficience DESC
Run Code Online (Sandbox Code Playgroud)

当我在'查询设计'中执行它时,我有正确的值:

  Employee  Name     QTY     REALTIME    CALCTIME    EFFI
      2     Peter    10        10           5         0,5
      3     John     10        10           10         1
      4     Thomas   10        12           9         0,75
      ...
Run Code Online (Sandbox Code Playgroud)

但是当我在报表中的表中添加字段时,预览会在字段之间产生一些混乱:

  Employee  Name     QTY     REALTIME    CALCTIME    EFFI
      2     10        10           5          0,5    #Error
      3     10        10           10          1     #Error
      4     10        12           9          0,75   #Error
      ...
Run Code Online (Sandbox Code Playgroud)

如果我从查询中删除字段"名称"(当然,从报告中删除),我会在查询设计和报告预览中获得正确的值.

注意:真正的查询包括一个JOIN,并且字段是用表命名空间引用的,但我认为它是出于可读性的原因,因为我不相信有任何区别.

Azu*_*ith 16

您必须删除项目文件夹中的filename.rdl.data.这是SSDT的一项功能.删除rdl.data文件后,它将在下一个查看预览中使用正确的查询创建一个新文件,它将删除#ERROR.

  • 我相信它是作为一个功能而设计的.如果您有一个长时间运行的查询,那么无需每次都运行查询就可以反复预览报表.不幸的是,它不直观,在我了解它是如何工作之前肯定会引起我的困惑. (3认同)
  • 哦,我明白了,我将更改答案以反映这一点。 (2认同)
  • 我也遇到了同样的错误,并且得到了同样的解决。非常感谢! (2认同)