长期读者。这个网站上有大量的信息。
希望这不是一个愚蠢的问题,但我一直在努力研究如何在报告中获得正确的总数。
我遇到了简单的总计问题。我有一个报告,它取两个数字的差异并显示结果,结果是负面和正面。在报告的底部,我想要差异的总和。由于某种原因,总数甚至都不接近。
这是我的数据:
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上相当新。
答案 0 :(得分:2)
一种选择是计算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 DataSet查询:
SELECT Specialist
, SUM(Sales) AS TotalSales
, SUM(DISTINCT(Budget)) AS Budget
FROM dbo.SalesData
GROUP BY Specialist
屏幕截图#1:
屏幕截图#2:
屏幕截图#3:
屏幕截图#4:
答案 1 :(得分:1)
在这种罕见的情况下,我不得不放入页脚并将总和公式引用到实际的文本框中。非常奇怪,这是有效的,但正则表达式没有。
感谢您对此的帮助!