hope this one helps
Dim locResult = From locDailyReport In locDataContext.Tagesabschluss
Join locDailyReportDetails In locDataContext.Tagesabschlussdetails
On locDailyReport.Id Equals locDailyReportDetails.Tagabid
Group Join locReceiptResponse In locDataContext.receiptresponses On locDailyReportDetails.Renummer Equals locReceiptResponse.renummer And locDailyReport.abgabedatum.Year Equals locReceiptResponse.jahr And locDailyReport.Firmenid Equals locReceiptResponse.firmenid Into locReceiptJoin = Group From locReceiptResponse In locReceiptJoin.DefaultIfEmpty()
Group Join locInsurance In locDataContext.Tagabkrankenkassenanteils On locDailyReport.Id Equals locInsurance.Tagabid Into locRightJoin = Group From locGroupedInsurance In locRightJoin.DefaultIfEmpty()
Where locDailyReport.Firmenid = LinqProvider.GetAktivCompanyId AndAlso
(locDailyReport.abgabedatum >= locFrm.vonDatum And locDailyReport.abgabedatum <= locFrm.bisDatum)
Order By locDailyReportDetails.Id
Select New Klasse.Export With {
.AbgabeDurch = locDailyReport.Abgegeben,
.AbgabeDatum = locDailyReportDetails.Datum,
.Adresse = locDailyReport.Adresse,
.Bezahlart = locDailyReport.Bezart,
.BezahlDatum = locDailyReport.abgabedatum,
.BezahlterBetrag = locDailyReport.Bezbetrag,
.Bezeichnung = locDailyReportDetails.Artikelbezeichnung,
.Id = locDailyReport.Id,
.KrankenkassaTarif = locGroupedInsurance.Sum(Function(x) x.Kassenanteil - x.Selbstbehalt),
.Menge = locDailyReportDetails.Menge,
.Name = locDailyReport.Name,
.Preis = locDailyReportDetails.Preis,
.RechnungNummer = locDailyReportDetails.Renummer,
.RegistrierkassaMoment = locReceiptResponse.moment,
.RegistrierkassaReferenz = locReceiptResponse.referenz,
.RegistrierkassaReferenzId = locReceiptResponse.referenzid,
.Skonto = locDailyReport.Bezbetrag - locDailyReport.Aufbetrag
}