我有这个linq查询:
Dim lnqPrüfendeartikel = From r1 In (From row In dtKonf
Let ARTNR_HZ_ROHNR = row.Field(Of String)("ARTNR-HZ")
Let EMPF_ARTNR = row.Field(Of String)("ARTNR")
Where ARTNR_HZ_ROHNR <> ""
Select ARTNR_HZ_ROHNR, EMPF_ARTNR
Order By ARTNR_HZ_ROHNR).Distinct.Concat( _
(From row In dtKonf
Let ARTNR_HZ_ROHNR = row.Field(Of String)("ROHNR")
Let EMPF_ARTNR = row.Field(Of String)("ARTNR")
Where ARTNR_HZ_ROHNR <> ""
Select ARTNR_HZ_ROHNR, EMPF_ARTNR
Order By ARTNR_HZ_ROHNR).Distinct)
Join r2 In
(From row In dtErlöse
Let ARTNR = row.Field(Of String)("ARTNR")
Let BWA = row.Field(Of String)("BWA")
Let MENGE = row.Field(Of Double)("MENGE")
Let M_EINHEIT = row.Field(Of String)("ME")
Let WERT = row.Field(Of Double)("WERT")
Where BWA = "201"
Select ARTNR, MENGE, M_EINHEIT, WERT) On r1.EMPF_ARTNR Equals r2.ARTNR
Select r1.ARTNR_HZ_ROHNR, r1.EMPF_ARTNR, r2.MENGE, r2.M_EINHEIT, r2.WERT
它的工作正确。现在,我想从r1获得所有记录,而不仅仅是那些记录在r2中的记录。我也想要一个左联盟。
我搜索了网,我应该写完
On r1.EMPF_ARTNR Equals r2.ARTNR
类似的东西:
into JoinedQuery from r2 in JoinedQuery.DefaultIfEmpty() select new {r1.ARTNR_HZ_ROHNR, r1.EMPF_ARTNR, r2.MENGE, r2.M_EINHEIT, r2.WERT}
但是vs不承认。
这是什么问题?
答案 0 :(得分:0)
您找到的解决方案是C#。对于VB.NET,您需要使用:
Group Join r2 In (...)
On r1.EMPF_ARTNR Equals r2.ARTNR Into JoinedQuery
From r2 In JoinedQuery.DefaultIfEmpty()
...