私は Table1 と Table2 を の形で持っていますIEnumerable<DataRow>
。両方のテーブルに列Column1
とがありますColumn2
。
左外部結合を行いColumn1
、存在する行の数を取得してTable2
、レコードを DataTable にロードしたいと考えています。
次のクエリを試しました
var query = from p in Table1
join q in Table2 on p.Field<string>("Column1") equals q.Field<string>("Column1") into pq
from xyz in pq.DefaultIfEmpty()
group xyz by new { Col1 = p.Field<string>("Column1"), Col2 = p.Field<string>("Column2") } into g
select dtFinalData.LoadDataRow(new object[]
{
g.Key.Col1,
g.Key.Col2,
g.Count
}, false);
「g」はグループ化されたデータを表すため、g.count は表 2 にエントリがない行に対して 1 を返します。これらの行に対して「0」を返したいと思います。
入力:
表1
Col1Val1 Col2Val1
Col1Val2 Col2Val2
表 2
Col1Val1 Col2Val1
Col1Val1 Col2Val1
現在の出力:
Col1Val1 Col2Val1 2
Col2Val2 Col2Val2 1
予想された結果 :
Col1Val1 Col2Val1 2
Col2Val2 Col2Val2 0
LINQ - Left Join、Group By、および Countを見てきましたが、クエリに同じものを適用できませんでした...
このクエリの修正を手伝ってもらえますか?