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?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 2748997563
Url: https://administrator.de/forum/group-by-verketten-mssql-2016-2748997563.html
Ausgedruckt am: 22.12.2024 um 11:12 Uhr
5 Kommentare
Neuester Kommentar
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 ...