Я занимаюсь разработкой отсутствующего приложения "C# - MVC5", которое будет ежедневно отслеживать состояние отсутствия каждого сотрудника. Таблицы:
Таблица данных сотрудников:
EmpID
EmpName
AllowedRegularVacations
AllowedCasualVacations
Таблица транзакций:
ID
EmpID
EntryDate
Состояние
Мне нужно получить список с EmpId, EmpName, RemainingRegularVaction, RemainingCasualVaction
Я получаю это с этим запросом:
-- Query to calculate remaining regular vactions and remaining casual vacations for each employee
select Employees.Name , (Employees.RegularVacations - ISNULL(Tak1.RequelarVacations,0)) as RemRegularVacations ,
(Employees.CasualVacations - ISNULL(Tak2.RequelarVacations,0)) as RemCasualVacations
from
Employees left join (select Employees.Id , count (Transactions.Id) as RequelarVacations
from Employees inner join Transactions on (Employees.Id = Transactions.EmpId)
where (StatusId = 3)
and (Transactions.EntryDate between '01-Jul-19' and '30-Jun-2020')
group by Employees.Id) as Tak1 on (Employees.id = Tak1.Id)
left join (select Employees.Id , count (Transactions.Id) as RequelarVacations
from Employees inner join Transactions on (Employees.Id = Transactions.EmpId)
where (StatusId = 4)
and (Transactions.EntryDate between '01-Jul-19' and '30-Jun-2020')
group by Employees.Id) as Tak2 on (Employees.id = Tak2.Id)
Но как написать такой сложный запрос и получить результат в C# код MVC?