Я просто хочу убедиться, что источники данных 1 и 2 на самом деле являются таблицами данных. Вот как мой ответ опишет это. Я также буду описывать его в C #, хотя синтаксис не сильно отличается. Вы должны чередовать свой выбор для смешанных полей. вам также нужно будет настроить ваши типы данных по мере необходимости
from dt1 in ds["datatable1"].AsEnumerable()
join dt2 in ds["datatable2"].AsEnumerable() on
new { asset = dt1.Field<string>("asset"), jobtype = dt1.Field<string>("jobtype") } equals
new { asset = dt2.Field<string>("asset"), jobtype = dt2.Field<string>("jobtype") }
select new
{
asset = dt1.Field<string>("asset"),
description = dt1.Field<string>("description"),
make = dt1.Field<string>("make"),
...
lhjan = dt1.Field<int>("jan"),
imjan = dt2.Field<int>("jan"),
lhfeb = dt1.Field<int>("feb"),
imfeb = dt2.Field<int>("feb"),
....
};
вот синтаксис приблизительно vb:
Dim query = _
From dt1 In dataset.Tables["datatable1"].AsEnumerable() _
Join dt2 In dataset.Tables["datatable2"].AsEnumerable()_
On new { asset = dt1.Field(Of String)("asset"), jobtype = dt1.Field(Of String)("jobtype") } _
Equals new { asset = dt2.Field(Of String)("asset"), jobtype = dt2.Field(Of String)("jobtype") } _
Select New With _
{ _
// see members from c# example _
}