Вопрос: Показать имена всех сотрудников и полученную зарплату, если только сотрудники, работающие над проектом «ProductX», получают повышение на 10%.
Это отлично работает:
var data_18 = db.employees.Select(e1 => new
{
e1.FNAME,
e1.SSN,
SALARY = db.works_on.Where(w => w.ESSN == e1.SSN)
.Join(db.projects.Where(p => p.PNAME == "ProductX"), w => w.PNO, p => p.PNUMBER, (w, p) => 1).Count() == 0 ? e1.SALARY : e1.SALARY * 1.1
}).ToList();
Для этого нужна группировка, которую я еще не смог создать.
var data_18_1 = db.employees
.Join(db.works_on, e1 => e1.SSN, wo => wo.ESSN, (e1, wo) => new
{
e1,
wo
}).Join(db.projects, x => x.wo.PNO, p => p.PNUMBER, (g, p) => new
{
g.e1.FNAME,
g.e1.LNAME,
SALARY = (p.PNAME == "ProductX" ? g.e1.SALARY * 1.1 : g.e1.SALARY)
}).ToList();
Мне нужна помощь в создании 2-й группы 1или исправьте верхний 1, чтобы он лучше выполнял запрос на выборку на стороне sql, поскольку текущий 1 дает 1, что далеко не хорошо.
Спасибо за помощь.