Toon posts:

[SQL] sorteren op twee velden uit hetzelfde record

Pagina: 1
Acties:

Verwijderd

Topicstarter
De titel is niet helemaal duidelijk denk ik maar ik zal het met een voorbeeld duidelijk proberen te maken.
Ik heb de volgende query:

code:
1
"SELECT * From tblPersoon WHERE tblPersoon.actief = 'ja' ORDER BY voonaam1, voornaam2"


Deze Query geeft dit resultaat:

anton
anton
bart
dirk
anton

Dit is logisch omdat die onderste anton uit voornaam2 komt.
Ik wil dit uiteraard niet want ik wil dit

anton
anton
anton
bart
dirk

Hoe bereik ik dat?
Heb al geprobeerd om distinct te gebruiken maar daar doet ie niets mee. Een creatieve oplossing om voornaam1 en voornaam2 in dezelfde alias te stoppen vond ie ook niet leuk.

Ik heb alle sql tutorials al bekeken maar dat ik een order by moet gebruiken dat wist ik al wel.

  • frickY
  • Registratie: Juli 2001
  • Laatst online: 24-04 11:26
Het lijkt mij onmogelijk, maar ik ben niet geheel op de hoogte van de mogelijkheden met subquery's.

Wat voor database-server hebben we het over?
MySQL?

Verwijderd

Topicstarter
Access database die ik via ASP probeer te benaderen

  • kasper_vk
  • Registratie: Augustus 2002
  • Laatst online: 08-04-2025
Kun je niet iets dergelijks bereiken via een union? (nooit echt iets met unions gedaan, maar lijkt me logisch)

Dus
SQL:
1
2
3
4
select voornaam1 from .....
UNION
select voornaam 2 from ....
ORDER BY ...

Je kunt ook overwegen je model aan te passen, omdat dit ruikt naar een 1 op n relatie tussen persoon en voornaam. De voornamen dus in een parte tabel die refereert aan persoon.

[ Voor 4% gewijzigd door kasper_vk op 15-09-2005 15:10 . Reden: typo's ]

The most exciting phrase to hear in science, the one that heralds new discoveries, is not 'Eureka!' but 'That's funny...'


  • Tukk
  • Registratie: Januari 2002
  • Laatst online: 16:33

Tukk

De α-man met het ẞ-brein

Het is mij niet helemaal duidelijk wat je wil, die voornamen komen die uit voonaam1 of voonaam2 ?

Als je het hebt over zelfbeschrijvende kolomnamen :/

edit:

Mischien wil je het volgende
(als dat zo is, dan is je model niet echt goed)
SQL:
1
2
3
4
5
6
7
8
9
select voornaam(
SELECT voonaam1 as voornaam
    From tblPersoon 
 WHERE tblPersoon.actief = 'ja' 
union
SELECT voonaam2 as voornaam
    From tblPersoon 
 WHERE tblPersoon.actief = 'ja' 
) order by voornaam


edit2: Wat heb je zelf geprobeerd, wat heb je al gevonden, je hebt niet de meest
briljante post-historie

[ Voor 67% gewijzigd door Tukk op 15-09-2005 15:21 ]

Q: How many geeks does it take to ruin a joke? A: You mean nerd, not geek. And not joke, but riddle. Proceed.


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 27-04 18:17

gorgi_19

Kruimeltjes zijn weer op :9

Een ander databasemodel opzetten ook een optie?

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • TheRookie
  • Registratie: December 2001
  • Niet online

TheRookie

Nu met R1200RT

is voornaam1 leeg als voornaam 2 gevuld is ?

Verwijderd

Topicstarter
TheRookie schreef op donderdag 15 september 2005 @ 15:11:
is voornaam1 leeg als voornaam 2 gevuld is ?
Nee, als 2 gevuld is dan is 1 ook gevuld

Verwijderd

Verwijderd schreef op donderdag 15 september 2005 @ 15:12:
Nee, als 2 gevuld is dan is 1 ook gevuld
ah? wat stond er dan bij voornaam1 voor het laatste antonresultaat? en wat geeft concatenatie (order by [Tabel1]![naam1] & [Tabel1]![naam2])

  • TheRookie
  • Registratie: December 2001
  • Niet online

TheRookie

Nu met R1200RT

Dat was idd de volgende vraag :P

Verwijderd

Topicstarter
Verwijderd schreef op donderdag 15 september 2005 @ 15:17:
[...]
ah? wat stond er dan bij voornaam1 voor het laatste antonresultaat? en wat geeft concatenatie (order by [Tabel1]![naam1] & [Tabel1]![naam2])
ga ik proberen

  • TheRookie
  • Registratie: December 2001
  • Niet online

TheRookie

Nu met R1200RT

Nogmaals: wat stond er in het voornaam1 veld van het laatste 'anton' resultaat ?
[edit] en als voornaam1 niet leeg is, waarom wil je dan tóch op voornaam2 sorteren :?

[ Voor 40% gewijzigd door TheRookie op 15-09-2005 15:38 ]


Verwijderd

Topicstarter
TheRookie schreef op donderdag 15 september 2005 @ 15:31:
Nogmaals: wat stond er in het voornaam1 veld van het laatste 'anton' resultaat ?
[edit] en als voornaam1 niet leeg is, waarom wil je dan tóch op voornaam2 sorteren :?
Dit voorbeeld was even verzonnen dus de data klopt niet helemaal.
Ik wil op 1 en twee tegelijktijdig sorteren.

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 23:02

Creepy

Tactical Espionage Splatterer

WAt lukt er niet mee? Kreeg je een foutmelding? Zo ja, welke? Kreeg je een ander resultaat? Zo ja, wat krijg je dan precies en wat had je nu precies verwacht?

Daarbij vindt ik het zoiezo vaag dat als je een "select *" doet op een tabel met in elk geval twee velden, je maar in kolom in je resultaat terugkrijgt.

Geef nu eens precies aan wat je wilt hebben, hoe je tabellen eruit zien, en de zaken die je nu zelf al hebt geprobeerd..

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • TheRookie
  • Registratie: December 2001
  • Niet online

TheRookie

Nu met R1200RT

Verwijderd schreef op donderdag 15 september 2005 @ 15:54:
Ik wil op 1 en twee tegelijktijdig sorteren.
Hoe moet de query weten welke van de twee er gebruikt moet worden :?

Voornaam1Voornaam2
AntonBernard
CornelisDiederik
DirkFerdinand

Op basis waarvan bepaal je of Voornaam1 of Voornaam2 gebruikt moet worden, of wil je dat deze 2 eerst 'samengevoegd' worden tot
Anton
Bernard
Cornelis
Diederik
Dirk
Ferdinand
en dat er dán pas gesorteerd wordt ?

Geef anders een écht voorbeeld, want ik snap niet helemaal wat je nu precies wil bereiken ...

[ Voor 18% gewijzigd door TheRookie op 15-09-2005 16:16 . Reden: tabel ]


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

gorgi_19 schreef op donderdag 15 september 2005 @ 15:10:
Een ander databasemodel opzetten ook een optie?
Mag ik dit nog eens benadrukken? Twee velden voor dezelfde soort data klinkt als iets dat niet al te best genormaliseerd is.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • raptorix
  • Registratie: Februari 2000
  • Laatst online: 17-02-2022
-NMe- schreef op donderdag 15 september 2005 @ 16:44:
[...]

Mag ik dit nog eens benadrukken? Twee velden voor dezelfde soort data klinkt als iets dat niet al te best genormaliseerd is.
tblPersoon.actief = 'ja' klinkt ook al niet te hoopvol :X

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
raptorix schreef op donderdag 15 september 2005 @ 16:59:
[...]


tblPersoon.actief = 'ja' klinkt ook al niet te hoopvol :X
offtopic:
mischien heeft hij ook de waardes 'nee', 'mischien', 'een beetje' ;)


Geef idd eerst eens een compleet voorbeeld. In je voorbeeld doe je "Select * ...." en je krijgt als resultaat 1 kolom. Maar je zegt dat je datamodel minstens 2 kolomen heeft dus nogmaals geef eens een completer voorbeeld

[ Voor 39% gewijzigd door Woy op 15-09-2005 17:11 ]

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Verwijderd

Het lukt zeker nog steeds niet? Kreeg je een foutmelding? Zo ja, welke? Kreeg je een ander resultaat? Zo ja, wat krijg je dan precies en wat had je nu precies verwacht?

Je doet een SELECT * en het resultaat is maar één kolom. Dat klopt dus niet.

Geef nu eens precies aan wat je wilt hebben, hoe je tabellen eruit zien, en de zaken die je nu zelf al hebt geprobeerd.. ;)
Pagina: 1