sachsenhessi
Goto Top

Frage an die LINQ - Cracks

Hallo @all,

leider stehe ich mit LINQ auf Kriegsfuß.
Ich hoffe Ihr könnt mir helfen.
Ich habe folgendes SQL-Statement:
SELECT myPBtbl.Quelle, Right([Sortierdatum],4) AS Jahr, myPBtbl.[Debitor Nr], myPBtbl.Frankierlizenz, myPBtbl.Produkt
FROM (myPBtbl 
INNER JOIN myPBConv_KdDaten ON (myPBtbl.Frankierlizenz = myPBConv_KdDaten.Frankierlizenz) AND (myPBtbl.[Debitor Nr] = myPBConv_KdDaten.Debitor)) 
INNER JOIN myPBConv_Produkte ON (myPBConv_KdDaten.GlobeCustID = myPBConv_Produkte.GlobeCustID) AND (myPBtbl.Produkt = myPBConv_Produkte.myPBProdukt)
GROUP BY myPBtbl.Quelle, Right([Sortierdatum],4), myPBtbl.[Debitor Nr], myPBtbl.Frankierlizenz, myPBtbl.Produkt;
Jetzt habe ich das Problem, dies in LINQ zu übertragen.
Eigentlich sollte das so funktionieren (Denke ich jedenfalls)
 Dim analyse = From report In myPBtbl _
                    Group report By quelle = report("quelle"), jahr = Strings.Right(report("Sortierdatum"), 4), debitor = report("Debitor Nr"), frankierlizenz = report("Frankierlizenz"), produkt = report("Produkt")  
                    Into g = Group _
                    Join dbKdInfos In myPBConv_KdDaten On frankierlizenz Equals dbKdInfos("Frankierlizenz") And debitor Equals dbKdInfos("Debitor") _  
                    Join dbPrInfos In myPBConv_Produkte On dbKdInfos("GlobeCustID") Equals dbPrInfos("GlobeCustID") And produkt Equals dbPrInfos("myPBProdukt") _  
                    Select New With {quelle, jahr, debitor, frankierlizenz, produkt, .Anzahl = g.Count, _
                                     .GlobeId = dbKdInfos("GlobeCustID"), .EndKunde = dbKdInfos("Referenz"), .GlobeProdukt = dbPrInfos("GlobeProdukt"), .OfferID = dbPrInfos("GlobeOfferID"), .OfferPos = dbPrInfos("OfferPosID")}  
Nur leider sind in"analyse" keine Daten ;-(
Das SQL-Statement liefert die Daten wie erwartet.

Was mache ich hier falsch ?

Danke schon mal für Eure Hilfe,

Frank

Content-ID: 292086

Url: https://administrator.de/contentid/292086

Ausgedruckt am: 25.11.2024 um 05:11 Uhr

ErikM87
ErikM87 03.01.2016 aktualisiert um 05:31:09 Uhr
Goto Top
Bekommst du das kompiliert ?
Du bringt da scheinbar etwas mit der LINQ Syntax durcheinander.

"Group x by y" .. schreibt man "group by x .."

https://msdn.microsoft.com/de-de/library/bb763068.aspx <- vielleicht helfen die Beispiele dort..
SachsenHessi
SachsenHessi 03.01.2016 um 22:43:24 Uhr
Goto Top
Hallo @all,

Ich habe jetzt den Fehler doch noch gefunden.
Durch die „Umbauarbeiten“ am Programm, trat der Effekt auf, dass die Datentypen der Spalten nicht übereinstimmten.
Und ein INT32 mit STRING vergleichen gibt halt Probleme.
Da ich aber diesen Programmteil nicht angefasst hatte, war ich irritiert und habe erstmal in die falsche Richtung gesucht.
Um es kurz zu machen, nach einem Type-Cast, funktioniert es wieder richtig.
Mein „Problem“ hat sich also damit erledigt.

Trotzdem Vielen Dank
Frank