Hallo zusammen
Ich möchte gerne eine Auswertung machen. Ich habe mehrere Pferde und diese können mehrere Aufgaben besitzen. Nun möchte ich gerne Wissen, ob man die Aufgaben des Pferds in einer Spalte wiedergeben kann?!
Normale Ansicht:
Pferd, Aufgabe
Paul, Ausbildung
Paul, Besamung
Frieda, Ausbildung
Gusto, Schule
Gusto, Pacht
Gusto, Extern
Ich möchte gerne so eine Ansicht haben:
Paul, Ausbildung / Besamung
Frieda, Ausbildung
Gusto, Schule / Pacht / Extern
Ich dachte mir, dass das vielleicht mit einem Group By und der passenden Aggregationsfunktion funktionieren könnte. Ich habe bisher leider keine Lösung gefunden Ich weiß jedoch, dass es in MSSQL geht.
MSSQL sieht wie folgt aus:
CREATE TABLE #Test ( ID INTEGER IDENTITY (1,1) NOT NULL PRIMARY KEY
, NachName VARCHAR (50)
, VorName VARCHAR (50)
, KtoNr VARCHAR (20)
, BLZ VARCHAR (
, GutSchriftnr VARCHAR (12)
, GutSchriftBetrag NUMERIC (12,2)
);
INSERT INTO #TEST (NachName, Vorname, KtoNr, BLZ, Gutschriftnr, GutSchriftBetrag) VALUES ('Meier', 'Hans', '342875982', '70080000', '4441', 70.00);
INSERT INTO #TEST (NachName, Vorname, KtoNr, BLZ, Gutschriftnr, GutSchriftBetrag) VALUES ('Müller', 'Bruno', '3498502', '70090000', '4442', 70.00);
INSERT INTO #TEST (NachName, Vorname, KtoNr, BLZ, Gutschriftnr, GutSchriftBetrag) VALUES ('Zeller', 'Brigitte', '34587', '70070010', '4443', 70.00);
INSERT INTO #TEST (NachName, Vorname, KtoNr, BLZ, Gutschriftnr, GutSchriftBetrag) VALUES ('Meier', 'Hans', '342875982', '70080000', '4444', 70.00);
INSERT INTO #TEST (NachName, Vorname, KtoNr, BLZ, Gutschriftnr, GutSchriftBetrag) VALUES ('Filser', 'Thomas', '394570239', '70040030', '4445', 70.00);
INSERT INTO #TEST (NachName, Vorname, KtoNr, BLZ, Gutschriftnr, GutSchriftBetrag) VALUES ('Meier', 'Hans', '342875982', '70080000', '4446', 70.00);
SELECT Distinct NachName, Vorname, LEFT(GuschriftenListe
, LEN(GuschriftenListe)-1) AS GuschriftenListe
FROM #test t
CROSS APPLY
(SELECT GutSchriftnr + ','
FROM #Test tList
where tList.Vorname = t.Vorname AND tList.Nachname = t.Nachname
ORDER BY T.GutSchriftnr
FOR XML PATH('')) AS x(GuschriftenListe)
ergibt
NachName Vorname GuschriftenListe
--------------- --------------- ------------------
Filser Thomas 4445
Meier Hans 4441,4444,4446
Müller Bruno 4442
Zeller Brigitte 4443
(4 Zeile(n) betroffen)
Quelle: Transponieren für DTA Datei - Entwickler-Forum
Ich hoffe ihr könnt mir weiterhelfen Vielen Dank im voraus
Gruß
Wirbelwurm
Ich möchte gerne eine Auswertung machen. Ich habe mehrere Pferde und diese können mehrere Aufgaben besitzen. Nun möchte ich gerne Wissen, ob man die Aufgaben des Pferds in einer Spalte wiedergeben kann?!
Normale Ansicht:
Pferd, Aufgabe
Paul, Ausbildung
Paul, Besamung
Frieda, Ausbildung
Gusto, Schule
Gusto, Pacht
Gusto, Extern
Ich möchte gerne so eine Ansicht haben:
Paul, Ausbildung / Besamung
Frieda, Ausbildung
Gusto, Schule / Pacht / Extern
Ich dachte mir, dass das vielleicht mit einem Group By und der passenden Aggregationsfunktion funktionieren könnte. Ich habe bisher leider keine Lösung gefunden Ich weiß jedoch, dass es in MSSQL geht.
MSSQL sieht wie folgt aus:
CREATE TABLE #Test ( ID INTEGER IDENTITY (1,1) NOT NULL PRIMARY KEY
, NachName VARCHAR (50)
, VorName VARCHAR (50)
, KtoNr VARCHAR (20)
, BLZ VARCHAR (
, GutSchriftnr VARCHAR (12)
, GutSchriftBetrag NUMERIC (12,2)
);
INSERT INTO #TEST (NachName, Vorname, KtoNr, BLZ, Gutschriftnr, GutSchriftBetrag) VALUES ('Meier', 'Hans', '342875982', '70080000', '4441', 70.00);
INSERT INTO #TEST (NachName, Vorname, KtoNr, BLZ, Gutschriftnr, GutSchriftBetrag) VALUES ('Müller', 'Bruno', '3498502', '70090000', '4442', 70.00);
INSERT INTO #TEST (NachName, Vorname, KtoNr, BLZ, Gutschriftnr, GutSchriftBetrag) VALUES ('Zeller', 'Brigitte', '34587', '70070010', '4443', 70.00);
INSERT INTO #TEST (NachName, Vorname, KtoNr, BLZ, Gutschriftnr, GutSchriftBetrag) VALUES ('Meier', 'Hans', '342875982', '70080000', '4444', 70.00);
INSERT INTO #TEST (NachName, Vorname, KtoNr, BLZ, Gutschriftnr, GutSchriftBetrag) VALUES ('Filser', 'Thomas', '394570239', '70040030', '4445', 70.00);
INSERT INTO #TEST (NachName, Vorname, KtoNr, BLZ, Gutschriftnr, GutSchriftBetrag) VALUES ('Meier', 'Hans', '342875982', '70080000', '4446', 70.00);
SELECT Distinct NachName, Vorname, LEFT(GuschriftenListe
, LEN(GuschriftenListe)-1) AS GuschriftenListe
FROM #test t
CROSS APPLY
(SELECT GutSchriftnr + ','
FROM #Test tList
where tList.Vorname = t.Vorname AND tList.Nachname = t.Nachname
ORDER BY T.GutSchriftnr
FOR XML PATH('')) AS x(GuschriftenListe)
ergibt
NachName Vorname GuschriftenListe
--------------- --------------- ------------------
Filser Thomas 4445
Meier Hans 4441,4444,4446
Müller Bruno 4442
Zeller Brigitte 4443
(4 Zeile(n) betroffen)
Quelle: Transponieren für DTA Datei - Entwickler-Forum
Ich hoffe ihr könnt mir weiterhelfen Vielen Dank im voraus
Gruß
Wirbelwurm
Kommentar