如何显示两个表的总和(成本)和收入,并显示每月

时间:2011-12-08 00:52:28

标签: asp.net reporting-services report

我有两张桌子:

table 1:
Expense cost

发布日期

table 2:
Employee cost
Rvenue

结算日期

Totalcost = Expense cost + Employee cost
Pofit Revenue - TotalCost

我必须像这样显示报告。它应该按照2011年的年份显示每月的数据,(我知道如何按年过滤)

          Totalcost | Revenue | Profit
jan
feb
mar
apr
may 
jun
jul
aug
sep
oct
nov
dec

我很难完成查询。 问题是如何在报表查看器表中显示数据

1 个答案:

答案 0 :(得分:0)

最简单的方法是将数据组合成一个数据表,作为报告的数据源。

您可以在数据库端加入两个表 - 例如,

SELECT
   t1.Month,
   t1.ExpenseCost + t2.EmployeeCost AS TotalCost,
   t2.Revenue,
   t2.Revenue - t1.ExpenseCost - t2.EmployeeCost AS Profit
FROM
   Table1 t1
   INNER JOIN Table2 t2 ON t1.Year = t2.Year and t1.Month = t2.Month
WHERE
   t1.Year = @Year /* parameter to filter for a year */

或者您可以通过使用数据关系或更简单地使用LINQ over数据表来组合前端数据 - 例如

var query = from t1 in table1.AsEnumerable()
                  join t1 in table2.AsEnumerable()
                  on t1.Field<string>("Month") equals t2.Field<string>("Month")
                  select new
                  {
                       Month = t1.Field<string>("Month"),
                       TotalCost = t1.Field<Decimal>("ExpenseCost") + t2.Field<Decimal>("EmployeeCost"),
                       Revenue = t2.Field<Decimal>("Revenue"), 
                       // similarly compute profit 
                   };