2017-02-17 17 views
0

У меня есть этот sql и вы хотите преобразовать его в linq. SQL слияние столбцов в БД с помощью SUM и я хочу сделать то же самое в LINQ:SQL с SUM() конвертировать в LINQ

SELECT 
[company] 
    ,[employeeid] 
    ,[year] 
    ,[period] 
    ,[project] 
    ,[activity] 
    ,SUM(hours1) as day1 
    ,SUM(hours2) as day2 
    ,SUM(hours3) as day3 
    ,SUM(hours4) as day4 
    ,SUM(hours5) as day5 
    ,SUM(hours6) as day6 
    ,SUM(hours7) as day7 
    ,[projecttype] 
    ,[runtableid] 
FROM ExportHoursToERP 
where runtableid = 6090 
group by [company], [employeeId],[year],[period],[project],[activity],[projecttype],[runtableid] 

Это то, что я безуспешно пытался до сих пор:

var DbRows = from r in dal.ExportHoursToERPs 
       where r.runtableid.Equals(6090) 
       group r by new { r.company, r.employeeid, r.year, r.period, r.project, r.activity, r.projecttype, r.runtableid } into og 
       select new 
       { 
        company = r.company, 
        Employee = r.employee, 
        Year = r.year, 
        WeekNo = r.period, 
        Project = r.project, 
        Activity = r.activity, 
        day1 = og.Sum(y => y.hours1) 
        day2 = og.Sum(y => y.hours2) 
        day3 = og.Sum(y => y.hours3) 
        day4 = og.Sum(y => y.hours4) 
        day5 = og.Sum(y => y.hours5) 
        day6 = og.Sum(y => y.hours6) 
        day7 = og.Sum(y => y.hours7) 
        ProjectType = r.projecttype, 
        RuntableId = r.runtableid 
       }; 
+1

Что не удалось сделать? Вы получили сообщение об ошибке? Неверные результаты? Что-то другое? – Chris

+1

У вас есть ошибка? запрос выглядит хорошо, я думаю. Кроме того, shouldnt это с кавычками - 'r.runtableid.Equals (" 6090 ")'? – TheUknown

ответ

0

Вместо этого

company = r.company 

использовать это:

company = og.Key.company 

Это потому, что вы хотите получить доступ к свойству, которое является частью ключа группировки.
Конечно, вам необходимо применить ту же систему для всех свойств, которые являются частью объекта группировки.

+0

Спасибо tomassino, используя ключ, решил мою проблему :-) – rnesbakk