Sql Opdracht

Status
Niet open voor verdere reacties.

stefan s

Nieuwe gebruiker
Lid geworden
4 nov 2008
Berichten
4
Ik heb een tabel die er als volgt uitziet:


id naam regio
1 harry 1
2 piet 3
3 truus 8
4 mark 1
5 jan 1

Nu wil ik alle namen uit regio 1 tevoorschijn toveren, en ze een opeenlopende nummer geven, zodat er dit ontstaat:


nr naam
1 harry
2 mark
3 jan

Ik weet dus niet hoe je 'nr' opeenvolgend kan maken.
Kunnen jullie mij hiermee helpen?

thank you! :thumb:
 
Het woord "opdracht" in je titel suggereert dat het hier om huiswerk gaat.

Zoals in deze mededeling staat, zijn dat soort vragen alleen gewenst wanneer je er echt niet uit komt en je zelf ook al dingen hebt geprobeerd.


Om je toch wat op weg te helpen raad ik je aan om eens te gaan zoeken naar ORDER BY
 
ik heb het volgende:

SELECT
nr = COUNT(*),
a.naam,
a.regio
FROM
klanten a
INNER JOIN klanten b
ON
a.regio > b.regio
OR
(
a.regio = b.regio
AND
a.naam >= b.naam
)
GROUP BY
a.naam,
a.regio
ORDER BY
nr

Als resultaat geeft ie wel de nr opeenvolgend, maar hij laat nog alle namen zien in alle regio's. Als ik de innerjoin weghaal, en daar een where regio = '1' neerzet, dan laat ie wel de namen zien in regio 1, maar dan zijn de nummers niet meer opvolgend in de 'nr' rij..
 
Ik heb m weer aangepast, en nu geeft sql het juiste resultaat weer:

SELECT
nr = COUNT(*),
a.naam,
a.regio
FROM
klanten a
INNER JOIN klanten b
ON

a.naam >= b.naam
AND a.regio = '1'

GROUP BY
a.naam,
a.regio
ORDER BY
nr

Maar kan dit niet eenvoudiger?
 
Laatst bewerkt:
Ik weet niet hoe je databasemodel er uit ziet.

Dus als je die zou kunnen plaatsen :)
 
CREATE TABLE klanten
(
naam VARCHAR(32),
regio VARCHAR(32)
)
GO

INSERT klanten VALUES('harry', '1')
INSERT klanten VALUES('piet', '3')
INSERT klanten VALUES('truus', '8')
INSERT klanten VALUES('mark', '1')
INSERT klanten VALUES('jan', '1')

Hoop dat je dit bedoeld :o
 
volgens mij kan je ipv dit
Code:
FROM 
klanten a 
INNER JOIN klanten b 
ON 

a.naam >= b.naam

dit gebruiken
Code:
from a.naam *= b.naam
where......

Hier maak je ook joins mee alleen wat gebruiksvriendelijker om te zien.
 
Als je Oracle gebruikt ...

Select rownum, naam from klanten where regio = '1'

is toch een stuk korter.....
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan