0

3 つのテーブルを結合しようとしている LINQ クエリに問題があり、そのうちの 1 つがフィルターとして機能します。結合の 1 つだけを使用してクエリを実行すると、予想される数のレコードが返されますが、2 番目の結合を追加すると、クエリは不要なレコードを除外します。2 つのクエリを以下に貼り付けます。ありがとう!

単一結合の場合 (期待される結果):

                 Dim Report = From Filter In FilterTable _
                              Join EDTK In eDTKBase _
                                On Filter.PLI_Code Equals EDTK.eDTK_PLI _
                              Select Filter.PLI_Code, _
                                     EDTK.eDTK_Instance, _
                                     EDTK.eDTK_PLI_Name, _
                                     EDTK.eDTK_PDP_Code, _
                                     EDTK.PDD_PDP_Description

2 つの結合:

                  Dim Report= From Filter In FilterTable_
                              Join EDTK In eDTKBase _
                                On Filter.PLI_Code Equals EDTK.eDTK_PLI _
                              Join PLI In ProdBase _
                                On Filter.PLI_Code Equals PLI.Siebel_PLI _
                              Select Filter.PLI_Code, _
                                     EDTK.eDTK_Instance, _
                                     EDTK.eDTK_PLI_Name, _
                                     PLI.Siebel_PLI, _
                                     PLI.Siebel_PLI_Name, _
                                     EDTK.eDTK_PDP_Code, _
                                     PLI.Siebel_PDP_Code, _
                                     EDTK.PDD_PDP_Description

OK、クエリを左結合を使用するクエリに変更しましたが、まだレコードが除外されています。私の結合が書かれている方法に問題があるのでしょうか?

 Dim EDTKMultPDPtoPLIRpt = From Filter In EDTKMultPDPtoPLIFilter _
                              Group Join EDTK In eDTKBase _
                                On Filter.PLI_Code Equals EDTK.eDTK_PLI _
                              Into g = Group _
                              From EDTK In g _
                              Group Join PLI In ProdBase _
                                On EDTK.eDTK_PLI Equals PLI.Siebel_PLI _
                              Into h = Group _
                              From PLI In h _
                              Select Filter.PLI_Code, _
                                     EDTK.eDTK_Instance, _
                                     EDTK.eDTK_PLI_Name, _
                                     PLI.Siebel_PLI, _
                                     PLI.Siebel_PLI_Name, _
                                     EDTK.eDTK_PDP_Code, _
                                     PLI.Siebel_PDP_Code, _
                                     EDTK.PDD_PDP_Description
4

1 に答える 1