作業に参加:私は何をしたいか MU_Report表GROUPBYと私は私が働いている二つのテーブル持って一緒に
Date | Shift | Machine | MU
1/12/2016 | 1 | 12 | 44%
1/12/2016 | 2 | 12 | 68%
1/12/2016 | 3 | 12 | 78%
Downtime_Report表
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#でEntity Frameworkのを使用しています。
編集:私はへの参加に変換するが、今、私は問題を持っている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)
};
なぜそれがシフト2 0ですか? – dotctor
whereステートメントをグループの前に1行移動するだけでしたか? –
@dotctor No_Workの合計はシフト2のため0です。 – JCM