问题是:如果只给在“ 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给出的结果差强人意。
感谢帮助。