我有两张桌子:
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
我很难完成查询。 问题是如何在报表查看器表中显示数据
答案 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
};