GROUP BY verketten? MSSQL 2016

springstil
Goto Top
Hallo zusammen,

Ich hole mir aus Datev eine Salden liste raus, diese Importiere ich in die Datenbank um sie erst einmal so zu verändern / bearbeiten wie ich sie für unser ERP brauche. (Ich weiß das unsere Buchhaltung etwa eigenartig arbeitet, aber es funktioniert :P )

Mein abfrage sieht so aus:


Ich darf hier keine Doppelten Belegnummern haben! Allerdings versuche ich auch die Referenzbelegnummer und Buchungstext mit zunehmen. Diese Texte sind aber unterschiedlich und daher greift hier das Group BY nicht mehr. Nun wäre meine Idee das ich die Felder einfach "zusammen" lege also Verkette mit einander wenn
datevImport.Personenkonto,
datevImport.Belegnummer,
übereinstimmt.

Nur weiß ich nicht ob das überhaupt möglich ist. Hat vielleicht jemand ne idee?

Content-Key: 2748997563

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

Ausgedruckt am: 13.08.2022 um 07:08 Uhr

Mitglied: ukulele-7
Lösung ukulele-7 11.05.2022 um 15:32:39 Uhr
Goto Top
Du suchst quasi ein GROUP_CONCAT (MySQL etc.) in MSSQL. In neueren Versionen geht das mit ARRAY_AGG(), 2016 müsste dazu gehören. Ansonsten geht das in MSSQL mit einer XML-Funktion, nicht ganz so selbsterklärend:
https://stackoverflow.com/questions/46661496/how-to-use-group-concat-fun ...
Mitglied: ukulele-7
ukulele-7 11.05.2022 um 15:34:25 Uhr
Goto Top
PS: Was meinst du mit "darfst keine doppelten Belegnummern haben", du meinst du kannst auch hier nicht aggregieren wenn die unterschiedlich sind oder?
Mitglied: Springstil
Springstil 11.05.2022 um 17:01:27 Uhr
Goto Top
Zitat von @ukulele-7:

PS: Was meinst du mit "darfst keine doppelten Belegnummern haben", du meinst du kannst auch hier nicht aggregieren wenn die unterschiedlich sind oder?

Daher ja das Group By damit ich aus Restbetrag soll und haben eine summe bekomme. und immer das kleinste Datum (Was dem Eigentlichen Rechnungsdatum gleicht) bekomme.

Nach langem hin und her ist jetzt dabei raus gekommen das wir die Texte nicht im ERP brauchen. Somit hat sich das eigendlich erledigt, aber des Spaßes halbe versuche ich das mal wie du sagtest. Danke face-smile
Mitglied: Springstil
Springstil 16.05.2022 um 08:54:30 Uhr
Goto Top
Zitat von @ukulele-7:

Du suchst quasi ein GROUP_CONCAT (MySQL etc.) in MSSQL. In neueren Versionen geht das mit ARRAY_AGG(), 2016 müsste dazu gehören. Ansonsten geht das in MSSQL mit einer XML-Funktion, nicht ganz so selbsterklärend:
https://stackoverflow.com/questions/46661496/how-to-use-group-concat-fun ...

Danke noch mal für den Tipp, habs dann hinbekommen face-smile
Ich poste das mal für den fall das jemand ein ähnliches Problem hat:

Mitglied: ukulele-7
ukulele-7 16.05.2022 um 09:27:03 Uhr
Goto Top
Die Lösung wähle ich auch regelmäßig weil meine Instanzen fast alle noch SQL 2014 haben.