30. september 2003 - 22:29Der er
6 kommentarer og 1 løsning
SQL: poster der ligger tættest på hver side af det angivede tal
Jeg har et søgefelt hvor man kan søge på et produkts vægt. Jeg laver en forspørgsel via sql som læser fra en Access database. I forhold til det tal som man søger på, så skal jeg også have fat i det tal som er tættest på det adspurgte men mindre end tallet selv og det som ligger tættest på tallet selv, men som er større end tallet selv.
Eks. Jeg har f.eks. 5 produkter i en database og hvert produkt har en en vægt på henholdsvis 2 - 4 - 5 - 7 - 6 kg. Hvis man f.eks. taster 3 ind i søgefeltet, så skal forspørgselen finde frem til de to poster/produkter som vejer henholdsvis 3 og 4 kg. Hvordan gør jeg lige det? Håber i forstår hvad jeg mener. På forhånd tak for hjælpen.
Set objrs = "objConn.Execute("Select Top 1 Tal From Tabel Where Tal < " & Var & " Order By Tal Desc Union Select Top 1 Tal From Tabel Where Tal > " & Var & " Order By Tal") While Not objrs.EOF Response.Write objrs("Tal") & "<br>" objrs.MoveNext Wend
netro> Det virker fint, men der skal lige tages højde for noget mere (har jeg lige fundet ud af). Hvis selve det tal der søges på matcher et i databasen, så skal det selvfølgelig også vises. Og hvis der er flere ens tal i databasen som matcher, så skal de alle vises. Av, hvordan styrer jeg det? På forhånd tak for hjælpen.
erikjacobsen>OK, det havde jeg selv regnet ud. Men hvordan får jeg vist flere poster hvis de alle matcher det søgte tal 100%? Det spærrer "top 1" for så vidt jeg kan se. Men "top 1" virker fint så længe data ikke matches 100 med flere data som er ens i databasen. Hvad gør jeg i dette tilfælde?
Nåh, ja: 3 selects - gæt selv hvordan de skal se ud *g*
Synes godt om
Ny brugerNybegynder
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.