|
| SQL-søgefunktion vil ikke respektere tidsb~ Fra : Jakob Munck |
Dato : 24-10-01 09:54 |
|
Jeg har en velfungende søgefunktion på min site, men jeg vil gerne begrænse
søgningerne til at brugeren finder personer, der har været logget ind på
siten i de sidste 30 dage. Min SQL virker bare ikke på dette punkt. Her er
min gamle SQL og mit forsøg på ny SQL. Den nye SQL giver ingen fejlmelding,
men den begrænser desværre heller ikke søgningen (DateDiff) til de personer,
der har været logget ind de sidste 30 dage. Se her:
--------------------------------------------------------------------
' Gammel søgefunktion (virker fint):
strSQL = "SELECT TOP 25 brugerId, brugerNavn, alder, bopael,
uddannelsearbejde, brugerfilename, koen, beskrivdigselv FROM bruger WHERE"
strSQL = strSQL & " (brugerNavn LIKE '%" & strKeyword & "%')"
strSQL = strSQL & " OR (bopael LIKE '%" & strKeyword & "%')"
strSQL = strSQL & " OR (uddannelsearbejde LIKE '%" & strKeyword & "%')"
strSQL = strSQL & " OR (religion LIKE '%" & strKeyword & "%')"
strSQL = strSQL & " OR (koen LIKE '%" & strKeyword & "%')"
strSQL = strSQL & " OR (beskrivdigselv LIKE '%" & strKeyword & "%')"
-----------------------
' Ny søgefunktion (giver ingen fejlmelding, men tager ikke hensyn til
DateDiff....):
strSQL = "SELECT TOP 25 brugerId, brugerNavn, alder, bopael,
uddannelsearbejde, brugerfilename, koen, beskrivdigselv, sidsteBesoeg FROM
bruger where DateDiff('d', sidsteBesoeg, Now) < 30 and"
strSQL = strSQL & " (brugerNavn LIKE '%" & strKeyword & "%')"
strSQL = strSQL & " OR (bopael LIKE '%" & strKeyword & "%')"
strSQL = strSQL & " OR (uddannelsearbejde LIKE '%" & strKeyword & "%')"
strSQL = strSQL & " OR (religion LIKE '%" & strKeyword & "%')"
strSQL = strSQL & " OR (koen LIKE '%" & strKeyword & "%')"
strSQL = strSQL & " OR (beskrivdigselv LIKE '%" & strKeyword & "%')"
----------------------------------------------------
Hvad gør jeg galt?
v.h.
Jakob Munck
| |
Rune Baess (24-10-2001)
| Kommentar Fra : Rune Baess |
Dato : 24-10-01 10:14 |
|
Forslag:
WHERE (DateDiff(...ow) < 30)
AND ((brugerNavn LIKE '% ... %') OR (bopael LIKE '% ... %') OR ... )
Altså et ekstra sæt ()
Rune
> -----------------------
> ' Ny søgefunktion (giver ingen fejlmelding, men tager ikke hensyn til
> DateDiff....):
>
> strSQL = "SELECT TOP 25 brugerId, brugerNavn, alder, bopael,
> uddannelsearbejde, brugerfilename, koen, beskrivdigselv, sidsteBesoeg
FROM
> bruger where DateDiff('d', sidsteBesoeg, Now) < 30 and"
>
> strSQL = strSQL & " (brugerNavn LIKE '%" & strKeyword & "%')"
> strSQL = strSQL & " OR (bopael LIKE '%" & strKeyword & "%')"
> strSQL = strSQL & " OR (uddannelsearbejde LIKE '%" & strKeyword & "%')"
> strSQL = strSQL & " OR (religion LIKE '%" & strKeyword & "%')"
> strSQL = strSQL & " OR (koen LIKE '%" & strKeyword & "%')"
> strSQL = strSQL & " OR (beskrivdigselv LIKE '%" & strKeyword & "%')"
> ----------------------------------------------------
>
> Hvad gør jeg galt?
>
> v.h.
> Jakob Munck
>
>
| |
Jakob Munck (24-10-2001)
| Kommentar Fra : Jakob Munck |
Dato : 24-10-01 10:48 |
|
Det løste problemet. Tak for hjælpen !
v.h.
Jakob
"Rune Baess" <rune@(ingenspamtak)baess.dk> wrote in message
news:YAvB7.1867$D%1.125603@news010.worldonline.dk...
>
> Forslag:
>
> WHERE (DateDiff(...ow) < 30)
> AND ((brugerNavn LIKE '% ... %') OR (bopael LIKE '% ... %') OR ... )
>
> Altså et ekstra sæt ()
>
> Rune
>
> > -----------------------
> > ' Ny søgefunktion (giver ingen fejlmelding, men tager ikke hensyn til
> > DateDiff....):
> >
> > strSQL = "SELECT TOP 25 brugerId, brugerNavn, alder, bopael,
> > uddannelsearbejde, brugerfilename, koen, beskrivdigselv, sidsteBesoeg
> FROM
> > bruger where DateDiff('d', sidsteBesoeg, Now) < 30 and"
> >
> > strSQL = strSQL & " (brugerNavn LIKE '%" & strKeyword & "%')"
> > strSQL = strSQL & " OR (bopael LIKE '%" & strKeyword & "%')"
> > strSQL = strSQL & " OR (uddannelsearbejde LIKE '%" & strKeyword & "%')"
> > strSQL = strSQL & " OR (religion LIKE '%" & strKeyword & "%')"
> > strSQL = strSQL & " OR (koen LIKE '%" & strKeyword & "%')"
> > strSQL = strSQL & " OR (beskrivdigselv LIKE '%" & strKeyword & "%')"
> > ----------------------------------------------------
> >
> > Hvad gør jeg galt?
> >
> > v.h.
> > Jakob Munck
> >
> >
>
>
>
| |
Søren Nielsen (25-10-2001)
| Kommentar Fra : Søren Nielsen |
Dato : 25-10-01 15:42 |
|
"Jakob Munck" <jakob.munck@tdcadsl.dk> skrev i en meddelelse
news:3bd68b0d$0$277$edfadb0f@dspool01.news.tele.dk...
> Det løste problemet. Tak for hjælpen !
>
> v.h.
> Jakob
>
>
>
>
> "Rune Baess" <rune@(ingenspamtak)baess.dk> wrote in message
> news:YAvB7.1867$D%1.125603@news010.worldonline.dk...
> >
> > Forslag:
> >
> > WHERE (DateDiff(...ow) < 30)
> > AND ((brugerNavn LIKE '% ... %') OR (bopael LIKE '% ... %') OR ... )
> >
> > Altså et ekstra sæt ()
> >
> > Rune
> >
> > > -----------------------
> > > ' Ny søgefunktion (giver ingen fejlmelding, men tager ikke hensyn til
> > > DateDiff....):
> > >
> > > strSQL = "SELECT TOP 25 brugerId, brugerNavn, alder, bopael,
> > > uddannelsearbejde, brugerfilename, koen, beskrivdigselv, sidsteBesoeg
> > FROM
> > > bruger where DateDiff('d', sidsteBesoeg, Now) < 30 and"
> > >
> > > strSQL = strSQL & " (brugerNavn LIKE '%" & strKeyword & "%')"
> > > strSQL = strSQL & " OR (bopael LIKE '%" & strKeyword & "%')"
> > > strSQL = strSQL & " OR (uddannelsearbejde LIKE '%" & strKeyword &
"%')"
> > > strSQL = strSQL & " OR (religion LIKE '%" & strKeyword & "%')"
> > > strSQL = strSQL & " OR (koen LIKE '%" & strKeyword & "%')"
> > > strSQL = strSQL & " OR (beskrivdigselv LIKE '%" & strKeyword & "%')"
> > > ----------------------------------------------------
> > >
> > > Hvad gør jeg galt?
> > >
> > > v.h.
> > > Jakob Munck
> > >
> > >
Jeg har lidt af de samme problem, men her drejer kontakten sig om en
accessdatabase, og jeg kan ikke få syntaksen korrekt.
SQL = "SELECT * FROM nyheder WHERE DateDiff('m', Dato , datDagsdato) < 3
ORDER BY Dato"
Meningen er at den kun skal vise nyheder som er under 3 måneder gamle.
dette er fejlen jeg får - Der er for få parametre. Der var ventet 1.
| |
Søren Nielsen (25-10-2001)
| Kommentar Fra : Søren Nielsen |
Dato : 25-10-01 15:53 |
|
"Søren Nielsen" <unbeaten@c-n-p.dk> skrev i en meddelelse
news:3bd8251b$0$723$edfadb0f@dspool01.news.tele.dk...
> "Jakob Munck" <jakob.munck@tdcadsl.dk> skrev i en meddelelse
> news:3bd68b0d$0$277$edfadb0f@dspool01.news.tele.dk...
> > Det løste problemet. Tak for hjælpen !
> >
> > v.h.
> > Jakob
> >
> >
> >
> >
> > "Rune Baess" <rune@(ingenspamtak)baess.dk> wrote in message
> > news:YAvB7.1867$D%1.125603@news010.worldonline.dk...
> > >
> > > Forslag:
> > >
> > > WHERE (DateDiff(...ow) < 30)
> > > AND ((brugerNavn LIKE '% ... %') OR (bopael LIKE '% ... %') OR ... )
> > >
> > > Altså et ekstra sæt ()
> > >
> > > Rune
> > >
> > > > -----------------------
> > > > ' Ny søgefunktion (giver ingen fejlmelding, men tager ikke hensyn
til
> > > > DateDiff....):
> > > >
> > > > strSQL = "SELECT TOP 25 brugerId, brugerNavn, alder, bopael,
> > > > uddannelsearbejde, brugerfilename, koen, beskrivdigselv,
sidsteBesoeg
> > > FROM
> > > > bruger where DateDiff('d', sidsteBesoeg, Now) < 30 and"
> > > >
> > > > strSQL = strSQL & " (brugerNavn LIKE '%" & strKeyword & "%')"
> > > > strSQL = strSQL & " OR (bopael LIKE '%" & strKeyword & "%')"
> > > > strSQL = strSQL & " OR (uddannelsearbejde LIKE '%" & strKeyword &
> "%')"
> > > > strSQL = strSQL & " OR (religion LIKE '%" & strKeyword & "%')"
> > > > strSQL = strSQL & " OR (koen LIKE '%" & strKeyword & "%')"
> > > > strSQL = strSQL & " OR (beskrivdigselv LIKE '%" & strKeyword & "%')"
> > > > ----------------------------------------------------
> > > >
> > > > Hvad gør jeg galt?
> > > >
> > > > v.h.
> > > > Jakob Munck
> > > >
> > > >
>
>
> Jeg har lidt af de samme problem, men her drejer kontakten sig om en
> accessdatabase, og jeg kan ikke få syntaksen korrekt.
>
> SQL = "SELECT * FROM nyheder WHERE DateDiff('m', Dato , datDagsdato) < 3
> ORDER BY Dato"
>
> Meningen er at den kun skal vise nyheder som er under 3 måneder gamle.
>
> dette er fejlen jeg får - Der er for få parametre. Der var ventet 1
hov det skulle have været
SQL = "SELECT * FROM nyheder WHERE DateDiff("m", Dato , datDagsdato) < 3
ORDER BY Dato"
og så er fejlen
SQL = "SELECT * FROM nyheder WHERE DateDiff("m", Dato , datDagsdato) < 3
ORDER BY Dato"
----------------------------------------------------------------------------
------------^
| |
|
|