Rijnummers toevoegen aan Query

Status
Niet open voor verdere reacties.

Tvhouwel

Gebruiker
Lid geworden
2 apr 2002
Berichten
258
Ik vond in een vraag uit 2009, onderstaand stukje code
Code:
SELECT a.Gezinsnaam, a.GezinsID, Count(1) AS Volgnummer
FROM tblGezin AS a, tblGezin AS b
WHERE (((a.[GezinsID])>=[b].[GezinsID]))
GROUP BY a.Gezinsnaam, a.GezinsID
ORDER BY a.Gezinsnaam;
Daar was ik blij mee want was er al lang naar aan het zoeken.
Wat ik nog wel als extra zou willen is het volgende.
De uitvoer is wel op volgorde van Gezinsnaam, maar het volgnummer wordt gemaakt op volgorde van GezinsID.
Is er iets te verzinnen zodat het volgnummer ingevuld wordt op volgorde van Gezinsnaam ?
 
Laatst bewerkt:
Geen idee wat je bedoelt; kun je in een excelletje of zo laten zien wat je wilt hebben als resultaat? Je kunt nummers overigens best resetten per groep, dat is niet zo moeilijk.
 
Dat ziet er dan vermoed ik zo uit:
Code:
SELECT Left([a].[Gezinsnaam],1) AS Initiaal, a.GezinsID, Count(1) AS Volgnummer
FROM tblGezin AS a, tblGezin AS b
WHERE (((a.GezinsID)>=[b].[GezinsID]) AND ((Left([a].[Gezinsnaam],1))=Left([b].[Gezinsnaam],1)))
GROUP BY Left([a].[Gezinsnaam],1), a.GezinsID
ORDER BY Left([a].[Gezinsnaam],1), a.GezinsID;
 
Nee geen initialen en ook de nummering niet resetten
Wat ik bedoel is
Nu werkt hij zo
EXCEL_2019-12-16_22-01-12.png
En ik zou het graag zo hebben
EXCEL_2019-12-16_22-03-21.png

Dus de toegevoegde nummers op volgorde toekennen van Gezinsnaam en niet zoals in mijn eerste voorbeeld op volgorde van GezinsID
 
Zoals je in de query kunt zien, werkt de nummering op basis van het vergelijken van twee waarden met elkaar (A.ID >= B.ID). Dat werkt met alfanumerieke waarden een stuk minder goed, en al helemaal niet als het veld dat je wilt gebruiken (Gezinsnaam) niet uniek is, wat met een ID wél het geval is. En dan nog: je telt het aantal records op basis van unieke waarden. Maar dit werkt dan wellicht beter:
Code:
SELECT a.Gezinsnaam, a.GezinsID, Count(1) AS Volgnummer
FROM tblGezin AS a, tblGezin AS b
WHERE (a.[Gezinsnaam]>=[b].[Gezinsnaam])
GROUP BY a.Gezinsnaam, a.GezinsID
ORDER BY a.Gezinsnaam;
 
Dank voor je antwoorden en uitleg.
Ik begin te begrijpen hoe het werkt.
En idd jouw laatste voorbeeld werkt niet helemaal correct omdat het veld Gezinsnaam niet uniek is.
Ik ga er morgen mee verder, kijken of ik dit werkend krijg met een subQuery, waarin ik een veld [Gezinsnaam_GezinsID] maak, wat dan weer wel uniek is natuurlijk.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan