GROUP BY verketten? MSSQL 2016
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?
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:
SELECT top 100
datevImport.Personenkonto,
datevImport.Belegnummer,
min(datevImport.Belegdatum) as Belegdatum,
min(datevImport.[Fälligkeitsdatum]) as [Fälligkeitsdatum],
sum (cast(datevImport.[Restbetrag Soll] as numeric(10,2))) as [Restbetrag Soll],
sum (cast(datevImport.[Restbetrag Haben] as numeric(10,2))) as [Restbetrag Haben] ,
datevImport.Referenzbelegnummer,
datevImport.Buchungstext
FROM
dbo.datevImport
GROUP BY
datevImport.Personenkonto,
datevImport.Belegnummer,
datevImport.Referenzbelegnummer,
datevImport.Buchungstext
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?
Please also mark the comments that contributed to the solution of the article
Content-Key: 2748997563
Url: https://administrator.de/contentid/2748997563
Printed on: September 29, 2023 at 05:09 o'clock
5 Comments
Latest comment
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 ...
https://stackoverflow.com/questions/46661496/how-to-use-group-concat-fun ...