15. april 2004 - 09:36Der 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.
Den moderne arbejdsplads er i stigende grad afhængig af mødelokaler til at fremme samarbejde, men dette skift medfører også stigende sikkerhedsudfordringer.
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 ?
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 ??
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]
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.
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 >.
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....
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
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.