2011-07-15 112 views
1

长时间阅读器。本网站上的大量信息。表达总计在SSRS 2008中不显示正确的数据

希望这不是一个愚蠢的问题,但我一直在努力如何在我的报告中得到正确的总数。

我遇到了简单的总计问题。我有一份报告,它将两个数字的差异显示出来,结果既是负面的,也是积极的。在报告的底部,我想要一个总和的差异。由于某种原因,总数甚至不是很接近。

这里是我的数据:

Correct Data 

Specialist Total Sales  Budget   Difference 
DICK  "$35,174.00" "$63,530.00" "($28,356.00)" 
NATHAN  "$16,193.00" "$40,000.00" "($23,807.00)" 
PAUL  "$52,096.00" "$55,000.00"  "($2,904.00)" 
STEVE  "$31,185.44" "$66,700.00" "($35,514.56)" 

**Totals: "$134,648.44" "$225,230.00" "($90,581.56)"** 

Incorrect Data that is in my report 

Specialist Total Sales  Budget   Difference 
DICK   "$35,174.00" "$63,530.00" "($28,356.00)" 
NATHAN  "$16,193.00" "$40,000.00" "($23,807.00)" 
PAUL   "$52,096.00" "$55,000.00"  "($2,904.00)" 
STEVE  "$31,185.44" "$66,700.00" "($35,514.56)" 

**TOTALS: "$134,648.44" "$225,230.00"  "$71,118.44"** 

正如你所看到的,数据显示总型差分为$ 71,118.44当它应该是(90,581.56 $)。

这里是我的表达,以获得差异的结果:

=Sum(Fields!TotalSales.Value)-Fields!Budget.Value 

我右键点击文本框,选择“添加总计”获得总计为差异场。我也试过这个建议:

=Sum(Fields!TotalSales.Value)-Sum(Fields!Budget.Value) 

这:

=ReportItems!textbox14.Value - ReportItems!textbox15.Value 

另一件事一提的是有上进行分组专家。总销售额字段是该特定月份的销售总额。预算字段是该组之外的单个字段。

这似乎是一个没有道理,它应该工作。也许有人可以给我一些指导。

在此先感谢。

编辑:

感谢您的帮助,但不幸的是这个问题是比较复杂的比:)我本来应该上更加清晰。我从3-4个数据库提取数据,他们没有共同的字段链接。我使用行号来减少重复的小计,并将它们设置为0.我在预算编号上使用了一个rownumber,但我收回的数据是假的。这里的数据我:

Name Team SubTotal Budget 
SCOTT Vikings 202  25000.00 
SCOTT Vikings 1890  25000.00 
SCOTT Vikings 5167  25000.00 
SCOTT Vikings 20256 25000.00 
SCOTT Vikings 0  25000.00 
SCOTT Vikings 0  25000.00 

这里是我想拥有的数据:

Name Team SubTotal Budget 
SCOTT Vikings 202  25000.00 
SCOTT Vikings 1890   0.00 
SCOTT Vikings 5167   0.00 
SCOTT Vikings 20256  0.00 
SCOTT Vikings 0   0.00 
SCOTT Vikings 0   0.00 

如果预算数重复不止一次,我希望它是0。我认为这是因为我的总数在SSRS中显示不正确。我正在计算“差异”字段,方法是拿出推销员小计的GrandTotal,并将其从投入组页脚的预算字段中扣除(因为我是新的,我无法发布图片,对不起,以下是超链接)

http://i55.tinypic.com/124jw2u.png

这里是我的SQL语句也:

WITH InvoicedAndPaid 
AS 

(
SELECT KEY1 
    ,ltrim(rtrim(CustomText01)) as CustomText01 
    ,ROW_NUMBER() OVER(PARTITION BY DocNo ORDER BY DocNo) AS RowNumber  
    ,SubTotal 
    ,OrderDate  
     ,INVOICEDATE 
FROM DocumentHeadersItems AS AA 
JOIN SorArCombined AS BB 
ON AA.DocNo = ('AA' + BB.CustomerPoNumber) 
JOIN CONTACT1 AS CC 
ON AA.SoldToCMAccountNo = CC.ACCOUNTNO 
WHERE CreatedBy != 'NOAHDM' 
    AND KEY1 IN (@org) 
    AND SubTotal != 0 
    AND LEN(INVOICE) > 0 
    AND 
    (

     (
      CUSTOMER = 'QAA' 
      AND (INVOICEDATE IS NOT NULL) 
      AND (DATEPART(MM,INVOICEDATE) = DATEPART(MM,@start)) 
      AND (DATEPART(YYYY,INVOICEDATE) = DATEPART(YYYY,@end)) 
     ) 
     OR 
     (
      CUSTOMER != 'QAA' 
      AND (YearInvBalZero > 0) 
      AND (YearInvBalZero = DATEPART(YYYY,@start)) 
      AND (MonthInvBalZero = DATEPART(MM,@start)) 
      AND (YearInvBalZero = DATEPART(YYYY,@end)) 
      AND (MonthInvBalZero = DATEPART(MM,@end))    
     ) 
    ) 
) 

SELECT bb.team_id 
    ,bb.specialist_id 
    ,dd.Budget 
    ,cc.team_name 
    ,KEY1 
    ,CustomText01 
    ,CASE WHEN RowNumber = 1 THEN SubTotal ELSE 0 END as SubTotal 
FROM InvoicedAndPaid as aa 
join SalesReporting.dbo.team_members as bb 
on rtrim(aa.CustomText01) = rtrim(bb.specialist_name) 
join SalesReporting.dbo.team_master as cc 
on bb.team_id = cc.team_id 
join SalesReporting.dbo.sales_goals as dd 
on bb.specialist_id = dd.specialist_id 
WHERE dd.time_span LIKE 'M%' 
    AND dd.month = DATENAME(MONTH,@end) 
    AND dd.Org = aa.KEY1 
    AND cc.team_name in (@team) 
    AND dd.period_no = DATEPART(MM,@end) 
ORDER BY team_name, CustomText01 

这是否帮助了一点?我试图避免做一个存储过程,因为我在SSRS和SQL Server上相当新颖。

回答

1

一个选项是计算SSRS数据集中使用的SQL Server查询中的总销售额。以下示例显示了一个示例。样本是基于我设想表格的假设而创建的。该报告创建于SSRS 2008 R2,使用的数据库为SQL Server 2008 R2

  1. 假设源表在屏幕截图#如图所示。这个表格没有标准化,但是这里只是举例说明。

  2. 对报告数据库的查询将如截屏#所示。该查询也在SSRS数据集查询部分给出。

  3. 报告设计如屏幕截图#所示。在部分a中的表达将为=Fields!TotalSales.Value - Fields!Budget.Value,并且部分b中的表达为=Sum(Fields!TotalSales.Value, "SalesData") - Sum(Fields!Budget.Value, "SalesData")

  4. 屏幕截图#显示报告执行。

希望有所帮助。

SSRS集查询:

SELECT  Specialist 
     , SUM(Sales) AS TotalSales 
     , SUM(DISTINCT(Budget)) AS Budget 
FROM  dbo.SalesData 
GROUP BY Specialist 

截图#1:

1

截图#2:

2

截图#3:

3

截图#4:

3

1

在这种罕见的情况下,我不得不把在页脚和参考总和公式到实际的文本框。非常奇怪,这工作,但正则表达式没有。

我感谢您的帮助!