Meerdere restultaten samenvoegen SQL

Status
Niet open voor verdere reacties.

pgiesbers

Gebruiker
Lid geworden
31 mrt 2021
Berichten
5
Hallo,

Ik zit met een vraag stuk waar ik tot nu toe nog geen oplossing voor heb weten te vinden en hopelijk kan ik er via deze weg uitkomen.
Ik wil graag meerdere zoek restultaten binnen mijn SQL query samen voegen, wat ik hiermeel bedoel kan ik beter uitleggen door onderstaande tabel.

ID RMA nummer
31423005662 SR169754487
31423005543 SR169756582
31423004034 SR169327718
31423004034 SR169767543

Hierboven zie je een deel van mijn zoek resultaten, ik heb nu 4 zoek resultaten, maar ik heb maar 3 unieke ID's.
Ik zou graag het volgende resultaat willen zien:

ID RMA nummer
31423005662 SR169754487
31423005543 SR169756582
31423004034 SR169327718, SR169767543

Hier zijn de resultaten van ID 31423004034 samen gevoegd in een resultaat.

Wat voor functie zou ik hiervoor moeten gebruiken?
Onderstaand is de code die is gebruikt (er word nog veel meer data uitgetrokken)
Het zoek resultaat wat ik wil samen voegen is ticket_rma_nummers.rma_nummer.

Graag hoor ik of iemand mij hiermee kan en wilt helpen :)

Code:
SELECT
	t.id,
	ticket_rma_nummers.rma_nummer,
	t.esd_locatie,
	Date( t.datum_gemaakt ) AS `Ticket datum`,
	Date( ts1.datum_gemaakt ) AS `Mutatie datum`,
	DAYOFYEAR( CURRENT_DATE )- DAYOFYEAR( ts1.datum_gemaakt ) AS `Aantal dagen op deze status`,
	netbooks.model,
	netbooks.serienummer,
	onderwijsinstellingen.naam,
	servicelocaties.naam AS Servicelocatie,
	ts1.naam AS LBD 
FROM
	tickets AS t
	JOIN ticket_status AS ts1 ON t.id = ts1.ticket_id
	JOIN ( SELECT MAX( id ) AS id, ticket_id FROM ticket_status GROUP BY ticket_id ) AS ts2 ON ts2.id = ts1.id
	LEFT JOIN netbooks ON netbooks.id = t.netbook_id
	LEFT JOIN leerlingen ON t.leerling_id = leerlingen.id
	LEFT JOIN onderwijsinstellingen ON leerlingen.onderwijsinstelling = onderwijsinstellingen.id
	LEFT JOIN werkorders ON t.id = werkorders.ticketId
	LEFT JOIN servicelocaties ON werkorders.serviceLocatieId = servicelocaties.servicelocatieId
	LEFT JOIN ticket_rma_nummers ON t.id = ticket_rma_nummers.ticketId 
WHERE
	leerlingen.afasDebitNumber <> 238936 
	AND ( DAYOFYEAR( CURRENT_DATE ) - DAYOFYEAR( ts1.datum_gemaakt ) > '6' ) 
	AND ts1.`status` = '63' 
	AND t.accessoireTicket = 0 
	AND servicelocaties.servicelocatieId = 5 
ORDER BY
	ts1.datum_gemaakt ASC
 
Als ik de query zie lijkt het op MySQL of MariaDB. In dat geval kun je misschien iets met group_concat()? Een voorbeeldje:

[sql]select nummer, group_concat(distinct waarde order by waarde separator ', ') as resultaat
from ( select 1 as nummer, 'abc' as waarde from dual
union
select 1, 'def' from dual
union
select 1, 'ghi' from dual
union
select 2, 'jkl' from dual
union
select 2, 'mno' from dual
) tmp
group by nummer;[/sql]

Resultaat:

Code:
+--------+---------------+
| nummer | resultaat     |
+--------+---------------+
|      1 | abc, def, ghi |
|      2 | jkl, mno      |
+--------+---------------+

Mocht je een ander platform gebruiken laat dat dan even weten, dan kunnen de mensen die daar kennis van hebben kijken of ze kunnen helpen.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan