我正在使用两张桌子: MU_Report表
Date | Shift | Machine | MU
1/12/2016 | 1 | 12 | 44%
1/12/2016 | 2 | 12 | 68%
1/12/2016 | 3 | 12 | 78%
停机时间_报告表
Date | Shift | Machine | DT reason| DT_Hours
1/12/2016 | 1 | 12 | No Work | 3
1/12/2016 | 2 | 12 | No Resin | 2
1/12/2016 | 2 | 12 | No Op. | 4
1/12/2016 | 3 | 12 | No Work | 1
1/12/2016 | 3 | 12 | No Work | 5
我想要做的是让MU_Reports表查看Down_Time表,以便从同一天,轮班和机器获得No Work DT原因,然后对其求和。 输出示例
Date | Shift | Machine | MU | No_Work_Hours
1/12/2016 | 1 | 12 | 44% | 3
1/12/2016 | 2 | 12 | 68% | 0
1/12/2016 | 3 | 12 | 78% | 6
我在C#中使用实体框架我对这两个程序都是新手,所以请记住这一点。
编辑:我转换为加入,但现在我遇到了downtime.Downtime_Code.Equals("R09185")
在上下文中不存在的问题
var query = from b in db.MU_Reports
join downtime in db.Downtime_Reports on b.Shift equals downtime.Shift into o
where downtime.Downtime_Code.Equals("R09185")
select new
{
Date = b.Date,
Shift = b.Shift,
Machine = b.Machine,
MU = b.MU,
No_Work_Hours = o.Sum(x => x.Dt_Hours)
};
答案 0 :(得分:0)
试试这个 -
var query = from b in db.MU_Reports
join downtime in db.Downtime_Reports on b.Shift equals downtime.Shift
where downtime.Downtime_Code.Equals("R09185")
group downtime by new { b.Date, b.Shift, b.Machine, b.MU } into g
select new
{
Date = g.Key.Date,
Shift = g.Key.Shift,
Machine = g.Key.Machine,
MU = g.Key.MU,
No_Work_Hours = g.Sum(x=>x.Dt_Hours)
};