SELECT TOP 20 tall.tal FROM tall ORDER BY abs(50-tall.tal);
hvis access. Tabellen tall indholder feltet tal. Som er det tal som ønskes udvalgt. Hvis du vil have de 20 tal som er tættest på 50, kan ovenstående benyttes.
Synes godt om
Slettet bruger
19. september 2004 - 13:55#3
det er access..men feltet indeholder tekst...
-> tofte
kan du forklare det sidste hvad gør din order by sætning?
Synes godt om
Slettet bruger
19. september 2004 - 13:58#4
mit 'tal' er egentlig en dato i formatet: 2004-09-19-13-58-33 kan man gøre noget med den
jeg tager et tal og trækker indholdet i det konkrete felt fra, herved får jeg et tal. Dette tal tager jeg den nummeriske værdi, dvs abs(-x)= og abs(x)=x herefter jeg beder den ordne tallene efter deres forskel, altså abs(50-tal). Hvis det er en dato, kan du bruge datediff.
SELECT TOP 20 tall.tal FROM tall ORDER BY abs(datediff('m',tall.tal,'29/07/1901'));
idén med order er sådan set bare at jeg kun får dem frem med den midste forskel. Jeg begrænser mit dataset ved at lave et opslag på de 20 første poster. Du kan også begrænse med WHERE
SELECT tall.tal FROM tall WHERE abs(datediff('m',tall.tal,'29/07/1901'))<10 ORDER BY abs(datediff('m',tall.tal,'29/07/1901'));
hmm det skal nok være et d i stedet for et m, ellers får du differencen i måneder, det er nok ikke meningen, min fejl.
Synes godt om
Slettet bruger
19. september 2004 - 16:36#8
Ok...nu fik jeg dit forslag til at virke men nu har jeg følgende problem. Datoer der er længere ude i fremtiden end dags dato giver jo minus tal hvilket jo kommer før de postive. Det giver følgende resultat:
23-09-04 = -4 19-09-04 = 0 16-09-04 = 3
Synes godt om
Slettet bruger
19. september 2004 - 16:37#9
problemet er at datoen den 19. er mere interessant end den 23...da vi har den 19. idag
Synes godt om
Slettet bruger
19. september 2004 - 16:37#10
kan man på en eller anden måde få den til kun at tage hensyn til positive tal?
Set RS1 = Conn.execute("Select * from Nyhed where StartDatoBackend <= '"&dato&"' AND ArkivDatoBackend >= '"&dato&"' Order by abs(Datediff('d',FokusDato,"&datoFe&"))")
det kan jeg ikke forstå, hvis du bruger det som du lige har postet burde det virke, og der vil kun komme positive tal ud, som den så sorterer efter. Hvilken rækkefølge kommer tallene ud i, hvis du afvikler : Set RS1 = Conn.execute("Select * from Nyhed where StartDatoBackend <= '"&dato&"' AND ArkivDatoBackend >= '"&dato&"' Order by abs(Datediff('d',FokusDato,"&datoFe&"))")
det virker fint ved mig. Jeg har en tabel(tall) med et felt som hedder tal, det er af typen "dato og tid". Tabellen indeholder følgende datoer tal = 16-09-2004 tal = 19-09-2004 tal = 23-09-2004
SELECT TOP 20 tall.tal FROM tall ORDER BY abs(datediff('d',tal,'19-09-2004'));
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.