Avatar billede fixxxer Nybegynder
15. april 2004 - 09:36 Der er 9 kommentarer og
1 løsning

Find ID-numre et niveau oppe

Jeg har brug for en lille funktion til at finde et ID-numre en gang højere oppe i et hiraki af grupperede rækker.

Fx har jeg:

id, child, navn
1  0      Hans
2  0      Peter
3  0      Klaus

45  5      Kurt
48  5      Niels


osv.

Hvordan kan jeg fx finde ud af at hvis jeg har valgt Klaus så er det Peter der ligger ovenover og hvis jeg vælger Niels at det er Kurt der ligger oven over.
Jeg skal også kunne finde ud af tilsvarende hvem der ligger neden under, men det burde være til at finde ud af hvis jeg bare har den funktionen den ene vej.
Avatar billede nute Nybegynder
15. april 2004 - 10:06 #1
i hvilken sammenhæng skal du have dette ? på hvilken måde skal du finde "den forrige" og "den næste" ? Er det ved visning af én bestemt person, eller er det i forbindelse med en bladrefunktion ?

/nute
Avatar billede stoffer Nybegynder
15. april 2004 - 10:43 #2
Hvorfor bruger du ikke bare recordset i ASP?. Der har du jo metoderne rs.movenext og rx.moveprevious til rådighed?
Avatar billede nute Nybegynder
15. april 2004 - 10:54 #3
stoffer >> grunden til at jeg spurgte om hvordan man skal navigere frem eller tilbage, er på grund af de indebyggede funktionaliteter der ligger i RecordSet objektet. Man kan lave dette med en paging teknik (bladrefunktion) eller man kan lave det ved visning af en bruger, hvor man vil vise forrige og næste bruger (hvor man vil gøre brug af MoveNext og MovePrevious). Man kan også gøre dette på en tredje måde, ved brug af getRows. Det er "ikke bare" at bruge Recordset.

og hvorfor poster du et svar, når du stiller spørgsmål ??

/nute
Avatar billede stoffer Nybegynder
15. april 2004 - 11:48 #4
Det kommer an på hvor go man er til at bruge recordset og ved lidt om cursors jo.

Ovenstående skal ikke forstås som et spg. jeg er jo ikke i tvivl om at man har movenext og moveprevious til rådighed.

Ellers tør øjnene og kom over jeg trykkede svar i stedet for kommentar. er det ikke hipsomhap...
Avatar billede nute Nybegynder
15. april 2004 - 12:33 #5
mine øjne er meget tørre ;o]

Det er jo en grund til at der findes et 'kommentar' og et 'svar' alternativ for hvert spm. Det er mange der bruger disse til at bestemme hvilke spm de faktisk vil ind at kigge på. Hvis det er et spm med kun kommentarer og mange indlæg, så kan dette tyde på at spørgsmålet er dårlig formuleret, kundskaben til spm-stiller er dårlig og der skal mange indlæg til for at finde ud af hvad brugeren egentlig vil ( = meget arbejde i at hjælpe). Hvis det ovenikøbet er et spm med mange points, så kan det også være mange der poster totalt latterlige svar ind i håb om at få points ... det er mange grunde til at bruge 'kommentar' når indlægget *er* en kommentar, eller et spm om flere oplysninger, og 'svar' når man faktisk kommer med et løsningsforslag. Dette bruges også når man skal søge efter spm (hvor man kan søge efter spm uden svar, med svar eller med accepteret svar). Så nej ... det er nok ikke hipsomhap med tanke på at signalere ovenfor andre brugere hvad der foregår inde i et spm :o]

/nute
Avatar billede fixxxer Nybegynder
15. april 2004 - 19:44 #6
jeg kan jo ikke bruge movenext og moveprevious, da det ikke nødvendigvis er en række ovenover eller nedenunder, som er beslægtet med den række jeg står på. Det var det jeg forsøgte at illustrere, men det slog vist fejl. Jeg fosøger mig igen:

Jeg har en gruppe beslægtede rækker, der bestemmes efter deres child værdi. Dvs at rækker som Hans, Peter og Klaus er en gruppe og Kurt og Niels er en anden gruppe. Deres ID-numre kan sagtens være blandet ind mellem hinannden, så det er ikke nok bare at gå et nummer op eller et nummer ned i ID-rækken. Et eks. kunne være

id, child, navn
1  5      Niels
3  0      Klaus
4  5      Kurt
5  0      Hans
6  0      Peter


Hvis jeg står på Kurt så vil jeg jo vide at det er Niels der ligger over ham i deres gruppe - ikke Klaus, da han jo er i en anden gruppe. Tilsvarende er det ikke Kurt der ligger over Hans, men Klaus.

Håber det har udbybet min problemstilling.
Avatar billede stoffer Nybegynder
15. april 2004 - 22:57 #7
Nute. Fint nok...blev bare lidt irriteret på din kommentar, men kan godt se din pointe. Iøvrigt kunne jeg ikke være mere ligeglad med de point man får. Synes faktisk også at det var et løsningsforslag givet de oplysninger der blev givet.

Anyways, fixxxer nu jeg forstå hvad du mener

SELECT MIN(query2.id), query2.* FROM (SELECT * FROM [tabel] WHERE navn='Kurt') query1, (SELECT * FROM [tabel]) query2
WHERE query1.child = query2.child AND query1.id < query2.id

Her kan du lege med at skifte MIN ud med Max og skifte < ud med >.
Avatar billede stoffer Nybegynder
15. april 2004 - 23:01 #8
Nu er den SQL sætning en "skitse" og har bare skrevet den lige efter hvordan jeg mente det kunne gøres. Ved ikke hvor hård du er til SQL, men jeg skal gerne forklare hvad der sker hvis det er....jeg bruger selv MSSQL, så hvis du bruger noget andet end det kan jeg heller ikke garantere at det virker....
Avatar billede stoffer Nybegynder
15. april 2004 - 23:20 #9
hmm bull...glemte at man ikke kan bruge min uden group by.. her er det korrekte

Find den med lavere id...
----------------------------

SELECT TOP 1 (query2.id),query2.navn FROM (SELECT * FROM [tabel] WHERE navn='Kurt') query1, (SELECT * FROM [tabel]) query2
WHERE query1.child = query2.child AND query1.id > query2.id ORDER BY query1.id ASC

Find den med højere ID....

SELECT TOP 1 (query2.id),query2.navn FROM (SELECT * FROM [tabel] WHERE navn='Kurt') query1, (SELECT * FROM [tabel]) query2
WHERE query1.child = query2.child AND query1.id < query2.id ORDER BY query1.id ASC
Avatar billede fixxxer Nybegynder
02. september 2004 - 08:31 #10
tak for det :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester