Avatar billede djblues Nybegynder
22. oktober 2002 - 10:09 Der er 9 kommentarer og
2 løsninger

Forespørgsel med dato som kriterie

Jeg vil gerne have lavet en forespørgsel, der viser poster der er over 30 dage gamle ud fra 10 dato felter.

Altså hvis dato1 er ældre end 30 dage skal poster vises. osv. med dato2,3,4,5 etc.

i nogle af dato felterne står der ikke noget..(tomme)
Avatar billede katborg Praktikant
22. oktober 2002 - 10:22 #1
Lav dette select i "dato" '>Now()-30'

Null (tomme) vil ikke komme med

Hvis du vil have null med kan du bruge '>Now()-30 Or Is Null'
Avatar billede katborg Praktikant
22. oktober 2002 - 10:23 #2
Hov du skal lige vende '>' til '<' :-)

<Now()-30
Avatar billede katborg Praktikant
22. oktober 2002 - 10:24 #3
SQL koden:

WHERE (((Tabel.Dato)<Now()-30 Or (Tabel.Dato) Is Null))
Avatar billede amerikaner Nybegynder
22. oktober 2002 - 10:42 #4
katborg>> Tæt på men...
WHERE ((Tabel.Dato1 < DATE()-30) Or (Tabel.Dato1 Is Null) Or
(Tabel.Dato2 < DATE()-30) Or (Tabel.Dato2 Is Null) Or
(Tabel.Dato3 < DATE()-30) Or (Tabel.Dato3 Is Null) Or
(Tabel.Dato4 < DATE()-30) Or (Tabel.Dato4 Is Null) Or
(Tabel.Dato5 < DATE()-30) Or (Tabel.Dato5 Is Null) Or
(Tabel.Dato6 < DATE()-30) Or (Tabel.Dato6 Is Null) Or
(Tabel.Dato7 < DATE()-30) Or (Tabel.Dato7 Is Null) Or
(Tabel.Dato8 < DATE()-30) Or (Tabel.Dato8 Is Null) Or
(Tabel.Dato9 < DATE()-30) Or (Tabel.Dato9 Is Null) Or
(Tabel.Dato10 < DATE()-30) Or (Tabel.Dato10 Is Null))
 
Brug DATE og ikke NOW hvis Dato1-10 har tid i feltet.
Avatar billede amerikaner Nybegynder
22. oktober 2002 - 10:44 #5
Eller
WHERE ((Tabel.Dato1 < DATE()-30) Or
(Tabel.Dato2 < DATE()-30) Or
(Tabel.Dato3 < DATE()-30) Or
(Tabel.Dato4 < DATE()-30) Or
(Tabel.Dato5 < DATE()-30) Or
(Tabel.Dato6 < DATE()-30) Or
(Tabel.Dato7 < DATE()-30) Or
(Tabel.Dato8 < DATE()-30) Or
(Tabel.Dato9 < DATE()-30) Or
(Tabel.Dato10 < DATE()-30))

hvis null skal ikke med.
Avatar billede djblues Nybegynder
23. oktober 2002 - 13:30 #6
hmm, det vil ikke virke med OR og heller ikke med AND.....

Det jeg skal have er alle de poster der eksempelvis er over eks. 120 dage i alle dato felter ---- Se min nuværende SQL sætning her :

SELECT T_Debitor.Fornavn, T_Debitor.Adresse, T_Debitor.Område, T_Debitor.Postnr, DateDiff("d",[T_Debitor.Købsdato1],Now()) AS Tid1, T_Debitor.Købsdato1, DateDiff("d",[T_Debitor.Købsdato2],Now()) AS Tid2, T_Debitor.Købsdato2, DateDiff("d",[T_Debitor.Købsdato3],Now()) AS Tid3, T_Debitor.Købsdato3, DateDiff("d",[T_Debitor.Købsdato4],Now()) AS Tid4, T_Debitor.Købsdato4, DateDiff("d",[T_Debitor.Købsdato5],Now()) AS Tid5, T_Debitor.Købsdato5, DateDiff("d",[T_Debitor.Købsdato6],Now()) AS Tid6, T_Debitor.Købsdato6, DateDiff("d",[T_Debitor.Købsdato7],Now()) AS Tid7, T_Debitor.Købsdato7, DateDiff("d",[T_Debitor.Købsdato8],Now()) AS Tid8, T_Debitor.Købsdato8, DateDiff("d",[T_Debitor.Købsdato9],Now()) AS Tid9, T_Debitor.Købsdato9, DateDiff("d",[T_Debitor.Købsdato10],Now()) AS Tid10, T_Debitor.Købsdato10
FROM T_Debitor
WHERE (((DateDiff("d",[T_Debitor.Købsdato1],Now()))>=120) AND ((DateDiff("d",[T_Debitor.Købsdato2],Now()))>=120) AND ((DateDiff("d",[T_Debitor.Købsdato3],Now()))>=120) AND ((DateDiff("d",[T_Debitor.Købsdato4],Now()))>=120) AND ((DateDiff("d",[T_Debitor.Købsdato5],Now()))>=120) AND ((DateDiff("d",[T_Debitor.Købsdato6],Now()))>=120) AND ((DateDiff("d",[T_Debitor.Købsdato7],Now()))>=120) AND ((DateDiff("d",[T_Debitor.Købsdato8],Now()))>=120) AND ((DateDiff("d",[T_Debitor.Købsdato9],Now()))>=120) AND ((DateDiff("d",[T_Debitor.Købsdato10],Now()))>=120));

men hvis købsdato1 er under 120 dage i denne sætning vises posten ikke, selvom der ikke står noget i denne
Avatar billede djblues Nybegynder
24. oktober 2002 - 09:10 #7
--> Amerikaner

Hvis jeg skriver :

WHERE ((Tabel.Dato1 < DATE()-30) Or (Tabel.Dato1 Is Null) Or
(Tabel.Dato2 < DATE()-30) Or (Tabel.Dato2 Is Null) Or
(Tabel.Dato3 < DATE()-30) Or (Tabel.Dato3 Is Null) Or
(Tabel.Dato4 < DATE()-30) Or (Tabel.Dato4 Is Null) Or
(Tabel.Dato5 < DATE()-30) Or (Tabel.Dato5 Is Null) Or
(Tabel.Dato6 < DATE()-30) Or (Tabel.Dato6 Is Null) Or
(Tabel.Dato7 < DATE()-30) Or (Tabel.Dato7 Is Null) Or
(Tabel.Dato8 < DATE()-30) Or (Tabel.Dato8 Is Null) Or
(Tabel.Dato9 < DATE()-30) Or (Tabel.Dato9 Is Null) Or
(Tabel.Dato10 < DATE()-30) Or (Tabel.Dato10 Is Null))

Som du skrev, så får jeg posten med selvmo Forskellen mellem nu og dato1 er f.eks. 25, da forskellen mellem Dato2 og nu er over 30....
Avatar billede amerikaner Nybegynder
25. oktober 2002 - 11:42 #8
Undklyd, det er mørk herover. Dit problem er med Null felter (måske).  Kan du laver et exampler med den her.
Fornavn  Dato1 
Jens      22-10-02  10-10-02
Bent      15-09-02  22-10-02
Hans
Karl      16-08-02  22-10-02
skal du har Bent, Hans, og Karl eller bare Bent og Karl?

Hvis du vil gerne har hvad jeg synes du vil har...Andre alle din AND til OR i DIN forsporgsal. Du vil får Bent og Karl men ingen Hans (ingen null).
Avatar billede amerikaner Nybegynder
25. oktober 2002 - 11:53 #9
OK, jeg har genlæst din bemærkning.  Alle dato skal være over 120 dag...men ikke.

djblues-"Det jeg skal have er alle de poster der eksempelvis er over eks. 120 dage i ALLE dato felter"

djblues-"men hvis købsdato1 er under 120 dage i denne sætning vises posten ikke, selvom der ikke står noget i denne"

Hvordan hange den her to setninger sammen (måske det er bare min dårlig dansk)????
Avatar billede djblues Nybegynder
03. november 2002 - 21:10 #10
Sorry, rodede lige lidt rundt i det hele.....

Men jeg fandt egentlig selv ud af at jeg skulle bruge en anden kombination af and og Or for at det virkede.

Men jeg blev lidt inspireret af amerikaner, så derfor får du halvdelen af pointene....
Avatar billede katborg Praktikant
20. november 2002 - 20:34 #11
Har lige lagt mærke til at jeg blev tildelt nogle point, som skulle have været til amerikaner, og skynder mig derfor at give dem videre :-)

Sorry jeg ikke opdagede det noget før

Point er her: http://www.eksperten.dk/spm/285826
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester