こんにちは私は5つのテーブルを持っています。Linq-To-SQLの左外部結合問題
期間 同上 開始日終了日 IsDeleted
コード 同上 名前
YearlyTarget 同上 CodeId PeriodId YTAmountを次のように必要な関係があります は
AlteredTarget 同上 YearlyTargetId AltAmount IsDeleted
実際 同上 AlteredTargetId ActualAmount IsDeleted
私は年のデータでは4分の4を持っているIsDeleted。 YearlyTargetはすべての四半期に存在し、AlteredTargetはQ1、Actualは存在しません。次のように
私のクエリは次のとおりです。
from cl in this.Context.Codes
join ytl in this.Context.YearlyTargets on cl.Id equals ytl.CodeId
join pl in this.Context.Periods on ytl.PeriodId equals pl.Id
join atl in this.Context.AlteredTargets on ytl.Id equals cdpl.YearlyTargetId into ccl
join al in this.Context.Actuals on ytl.Id equals al.AlteredTargets.YearlyTargetId into cal
from cc in ccl.DefaultIfEmpty()
from ca in cal.DefaultIfEmpty()
where cc.IsDeleted == false && ca.IsDeleted == false
select new
{
Year = pl.EndDate.Year,
PeriodType = (PeriodType)pl.PeriodType,
PeriodName = pl.StartDate,
CodeName = cl.CodeName,
YT = ytl.TargetAmount,
CDP = cc.AltAmount,
Actual = ca.ActualAmount
};
クエリは空を返します。誰かが質問に何が間違っているか教えてください。ありがとう!!!
ありがとう、私の問題を解決した結合節で確認を追加します。 – Purusartha