在SQL Server中的报表上显示正确的值

时间:2017-09-30 17:45:55

标签: sql-server

我有两份和解报告,其中两份报告的TotalCost为785275.20应显示为相同。但是在Report2上,差异为650。

  • 报告1:785275.20
  • 报告2:784625.20

这是存储过程:

Create Table #TempTablex
(
    CostPay money
);

INSERT INTO #TempTableX (CostPay)
    SELECT 
        SUM(c.item1 + c.item2 + c.item3 + c.item4) AS TotalCost
    FROM 
        Cost AS C   
    WHERE 
        ((c.item1 + c.item2 >= 0))
        AND NOT ((c.item3 + c.item4 < 0))

SET sql = 'SELECT ISNULL(SUM(Temp.CostPay), 0) AS CostPay
           FROM #TempTableX Temp'

EXEC (@sql)

如何帮助我将两个报告显示为同一个GrossPay

1 个答案:

答案 0 :(得分:0)

这可能是一个时间问题。

Run Report1 -> 785275.20
User increases item1 on row1 by 650
Run Report2 -> 7856275.20

您没有显示报告的运行方式。他们是一份工作的一部分吗?如果您正在寻找读取一致性,则需要在单个事务中运行两个报告并正确设置隔离级别。

根据您在网站上运行的SSRS报告的评论,我正在考虑实时更新源数据。要从两个报告中获取静态结果,您需要创建数据的快照。如何完成快照取决于报告的复杂程度。但是,如果它只是您给出的过程中的数据,我只是将过程结果插入表中,然后从表中而不是过程中运行每个报告。