15. april 2002 - 20:39Der er
25 kommentarer og 1 løsning
If 2 poster ens then skriv kun én
Hey Jeg har en følgende SQL sætning: ---------------- strSQL = ("SELECT * from marked where DateDiff('n', forside, now)<0 ORDER BY ID DESC") Set rs = Conn.Execute(strSQL) ------------------------ Den virker fint, men hvordan laver jeg en if-sætning som gør, at hvis der fx. er 2 poster som har samme værdi i en bestem kolonne, så skriver den kun én af posterne ud. Jeg ved ikke om en if-sætning er løsningen, men det tror jeg bare. Er der en der kan knække denne lille nød?
Lyder interessant, men jeg er ikke helt sikker på at det er det jeg søger.. I dit eks. med københavn, der skulle den så fravælge posten københavn | søndag fordi københavn sår i samme kolonne lige ovenover altså 2 gange...
Jeg får fejl på denne sætning: ---------------- strSQL = ("SELECT DISTINCT overskrift from marked where DateDiff('n', forside, now)<0 ") ---------------- er den ikke rigtig?
Jeg har lavet den om til: ------------------------------ strSQL = ("SELECT DISTINCT * from marked where DateDiff('n', forside, now)<0 ORDER BY ID DESC") ------------------------------- Den virker, men jeg får nøjagtig samme resultat som før... Den sorteret ikke de poster fra, som har gentagende værdier i kolonnen "overskrift".
Du har ret i det med ID'en. Men problemet er at den skal kun vælge en post fra hvis den har samme værdi i én bestem kolonne - overskrift. De må gerne være forskellige i de øvrige kolonner.
På denne sætning: ----------------------- strSQL = ("SELECT DISTINCT overskrift FROM marked WHERE DateDiff('n', forside, now)<0 ORDER BY ID DESC ") ------------------------ kommer denne fejl: ---------------------- Microsoft][ODBC Microsoft Access Driver] ORDER BY clause (ID) conflicts with DISTINCT
Jeg vil have en SELECTION, som indeholder alle poster - Men hvis 2 poster har samme værdi i "overskrift" så skal den kun med i SELECTION'en én gang. Kan du forstår det, eller er det helt hen i skoven?
'åbn connection og recordset (rs) while not rs.eof 'looper igennem dit recordset if rs("overskrift") <> tmpOverskrift then 'hvis det er en ny overskrift (tmpoverskrift).. response.write rs("overskrift") 'udskrif overskrift tmpOverskrift = rs("overskrift") 'sæt ny overskrift til tmpoverskrift end if response.write rs("id") & "<br>" 'udskriv id og linje break - tilpas til dit design rs.movenext 'gå til næste række i recordsettet wend 'close connection og recordset
den skal ind der hvor du vil udskrive overskriften.
det, den gør, er tjekke om den allerede har udskrevet overskriften (tekker om tmpOverskrift er den samme som den nuværende værdi.. - hvis det er, udskriver den det ikke! - hvis den ikke er, udskriver den overskriften.. og sætter tmpOverskrift til den nuværende værdi. - næste gang du så kommer til den if statement, er tmpOverskrift = rs("overskrift"), hvis rs("overskrift") er den samme som i den foregående række.
forstår du hvad jeg mener, ellers skal du prøve at køre det stykke kode uden noget html udenom (husk at lave din db connection og databseudtræk).
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.