как показать сумму (стоимость) и выручку из двух таблиц и отобразить за месяц - PullRequest
0 голосов
/ 08 декабря 2011

У меня есть две таблицы:

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 голосов
/ 08 декабря 2011

Самый простой способ - объединить данные в одну таблицу данных, которая будет служить источником данных для отчета.

Вы можете объединить обе таблицы на стороне базы данных - например,

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 поверх таблиц данных - например,

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 
                   };
...