Samenvoegen van column met SQL

Status
Niet open voor verdere reacties.

flederflick

Gebruiker
Lid geworden
18 jun 2008
Berichten
5
Hallo Iedereen,

Ik zit met het volgende probleem.
Ik heb een table met daarin +/- 300 miljoen records.
Het gaat hier op gegevens uit 4 jaar Exchange Log Files.

De tabel bestaat uit meerdere columns maar ik heb MSGID, Sender_Address, Recipient_Address, Number_Recipients en total_bytes nodig.

Ik heb een overzicht nodig van alle unieke mailtjes (Distinct MSGID) nodig met daarbij alle Recipient_Addressen.

Als ik de volgende query afvuur :
SELECT DISTINCT msgid, Sender_Address, Recipeint_Address, Number_Recipients, total_bytes FROM tblLogFiles dan krijg ik zoiets als dit:

MSGID, SA , RA , NR , TB
5566 ik@domein.nl 1@domein.nl 3 55
5566 ik@domein.nl 2@domein.nl 3 55
5566 ik@domein.nl 3@domein.nl 3 55

Ik heb alleen iets als het volgende nodig:

MSGID, SA , RA , NR , TB
5566 ik@domain.nl 1@domein.nl,2@domein.nl,3@domein.nl 3 55

Iemand enig idee of dit met een querie valt op te lossen?

Alvast Bedankt
 
Ik heb de oplossing al gevonden.

Ben wat aan het experimenteren gegaan en kwam op de volgende query:

SELECT s.msgid AS MSGID,
s.sender_address AS SA,
STUFF(g.a, 1, 1, '') AS RA,
s.number_recipients AS NR,
s.total_bytes AS TB
FROM
(SELECT DISTINCT msgid, sender_address, number_recipients, total_bytes FROM tbllogfiles )
AS s
CROSS APPLY
(SELECT ',' + e.recipient_address FROM tbllogfiles AS e WHERE e.msgid = s.msgid FOR XML PATH('') ) AS g(a)

Toch bedankt voor het evt. zoeken.

Sidney
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan