我有一张销售表和折扣表。
主数据集是Sales表,每人都有销售额。
每个人只与一个项目相关联,每个项目只有一名主管。
第二个数据集 - 折扣表包含每个项目的折扣条目
Sales Table
Supervisor | Company |Project |Person |Sale
Adam | CompanyA |CompA-01 |Amy |100
Adam | CompanyA |CompA-02 |Beth |200
Adam | CompanyA |CompA-02 |Cary |200
Jenny | CompanyA |CompA-05 |Dawn |300
Jenny | CompanyA |CompA-05 |Emma |400
Discounts table
Company | Project |Month |Amount
CompanyA| CompA-02 |Jan |500
CompanyA| CompA-02 |Feb |500
CompanyA| CompA-05 |Jan |1000
我想显示一个报告,其中折扣字段的计算方法如下
Supervisor | Company |Project |Person |Sales |Discounts
Adam
CompanyA 500 1000 <---HELP CALCULATE THIS
CompA-01 100 0
Amy 100
CompA-02 400 1000
Beth 200
Cary 200
...
...
TOTAL 12000 2000
我的报告中有以下行组:
Supervisor Group
---Company Group
-----Project Group
----------Details
我能够在Project Grouping级别计算Discount列,如下所示
=Code.SumLookup(LookupSet(Fields!Project.Value,Fields!Project.Value,Fields!amount.Value,"Discounts"))
然后在总水平我计算折扣为:
=Sum(Fields!amount.Value, "Discounts")
我需要帮助弄清楚如何计算公司和主管级别的折扣总和。
正如你们许多人建议我的问题是我的问题,我只想继续并准确演示我面临的问题。
根据建议,我使用连接重新设计了查询
SELECT Sales.Supervisor, Sales.Company, Sales.Project, Sales.Person, Sales.SaleAmt, SUM(Discounts.Amount)
FROM Sales
LEFT OUTER JOIN Discounts
ON Sales.Company = Discounts.Company
AND Sales.Project = Discounts.Project
group by Sales.Supervisor, Sales.Company, Sales.Project, Sales.Person, Sales.SaleAmt, Discounts.Amount
创建了一个类似
的报告
报告预览如此
请注意折扣值如何总结错误。我该怎么做才能纠正这个问题?
答案 0 :(得分:1)
你为自己做了太多工作恕我直言的代码做了。 SSRS内置于了解您所在分组的级别。 EG:如果我有一个像Sum(Discount)这样的函数的细节级别,那么我添加一个'Project'分组并选择添加一个'header'行。如果我将该计算放在“详细信息”行上方的新行中,您现在将按其他数据进行分组。然后,您可以按公司和公司监督等对项目进行分组。然后,您可以在不同的行上添加相同的计算,只需知道其所处的级别即可实现不同的值。
答案 1 :(得分:0)
不是编写复杂的表达式或嵌套查询来连接这两个数据集,而是添加一个单独的数据集来获取查找所需的数据。例如,添加一个名为CompanyDiscounts的数据集,如下所示:
select Company, sum(Amount) as Discount
from DiscountsTable
现在您可以添加查找功能以获得公司级别的总折扣。
=Lookup(Fields!Company.Value, Fields!Company.Value, Fields!Discount.Value, "CompanyDiscounts")
您可以为Suporvisor级别重复这些步骤。
通常我不会推荐这样的方法,但数据结构的性质适合这种解决方法。理想情况下,您将拥有一个具有相关折扣的销售ID,以便您可以在一个查询中加入所有相关数据,并使用分组聚合来填写表格。
答案 2 :(得分:0)
请使用以下查询
SELECT Sales.Supervisor,
Sales.Company,
Sales.Project,
Sales.Person,
Sales.Sale,
Discounts.Amount
FROM Sales
LEFT OUTER JOIN Discounts ON Sales.Company = Discounts.Company
AND Sales.Project = Discounts.Project
GROUP BY Sales.Supervisor,
Sales.Company,
Sales.Project,
Sales.Person,
Sales.Sale,
Discounts.Amount
在数据集中,在表格模式的帮助下,您将能够生成报告。 我已经尝试过它并且有效。