27. august 2003 - 20:11
Der er
8 kommentarer og 1 løsning
Top 4 udtræk giver 9 resultater
Hej eksperter Jeg har følgende sql-sætning som gerne skulle (og har gjort) trække de 4 seneste poster ud af min database: bSQL = "SELECT TOP 4 * FROM Boliger WHERE Ledig_dato > Date() OR Dagsdato = 1 ORDER BY Ledig_dato DESC" set bRS = Conn.Execute(bSQL) Men pludselig trækker den alt ud der opfylder enten det ene eller det andet kriterie. Er der nogen der kan hjælpe?
Annonceindlæg fra Barco
27. august 2003 - 20:19
#1
skal der * med ? Måske SELECT TOP 4 FROM Boliger WHERE Ledig_dato > Date() OR Dagsdato = '1' ORDER BY Ledig_dato DESC eller brug limit
27. august 2003 - 20:19
#2
Det er nok Access der give det problem. Problemet er at TOP vil find de 4 første unike records og ikke de 4 første records. Så hvis der er en eller flere records om er ens vil de kun tælle for 1. Prøv at tilføje også ID til ORDER BY, jeg kan ikke helt huske om det er nok, eller man skal lave GROUP BY: bSQL = "SELECT TOP 4 * FROM Boliger WHERE Ledig_dato > Date() OR Dagsdato = 1 ORDER BY Ledig_dato DESC, ID DESC"
27. august 2003 - 20:19
#3
Mener det er SELECT * FROM Boliger WHERE Ledig_dato > Date() OR Dagsdato = '1' ORDER BY Ledig_dato DESC LIMIT 0, 4
27. august 2003 - 20:22
#4
Fandt selv løsningen - er fordi jeg sorterer på et forkert felt.
27. august 2003 - 20:30
#5
Er faktisk eagleeye der kom med det rigtige.
27. august 2003 - 20:33
#6
eagleeye: opretter du et svar?
27. august 2003 - 20:33
#7
Ok så svare jeg lige. Vi kan da deles om dem :)
27. august 2003 - 20:34
#8
nå anden gang.
27. august 2003 - 20:35
#9
Nope - for jeg bruger stadig feltet Ledig_dato til sortering, men sammen med mit ID felt - sådan som du foreslog.
Kurser inden for grundlæggende programmering