Avatar billede jokual.dk Nybegynder
06. november 2002 - 10:48 Der er 10 kommentarer og
1 løsning

Spørgesmål om datoer

Jeg har prøvet at formulere mig, så godt jeg kan.

Jeg har konstrueret en databasen, som skal kunne tage højde for nogen elever, som inden er på ferie eller er i praktik. Jeg kan bare ikke få funktionen som skal kigge i tabelen for at se hvilken elever er på skole til at virke.
Tabelen hvor mit interval er angivet hedder Hovedforløb1 den indeholder følgende kolonner Startdato,Slutdato,Cpr nummer. Denne tabel ligger i relation til min hovedtabel, som hedder Medlemmer. Den inde holder navn, efternavn, cpr nummer, osv.
Det jeg vil op nå er at lave en rapport, som tager højte for dem, som ikke er i skole og kun vise en rapport med dem der er på skolen.

Det jeg er kommet frem til er:

Jeg har lavet en forspørgsel

Indtastet de kolonner jeg ønsker vist når forspørgelsen er færdig.

Her stopper jeg så for jeg ved ikke hvad jeg skal skrive i mit kriterie felt. Jeg tror det er noget ligende det her (Not Between startdato og slutdato),men jeg kan ikke få det til at virke

Svar ønskes hurtigt

JOKUAL.dk
Avatar billede Morten Nybegynder
06. november 2002 - 11:03 #1
kan huske et eller andet om at det hedder Is not...
Avatar billede amerikaner Nybegynder
06. november 2002 - 11:10 #2
være sikker at din JOIN er OUTER JOIN (Medtag alle poster fra Medlemmer og kun de poster fra Hovedforløb1, hvor join forbundne felter er ens.

Select * FROM Medlemmer
LEFT JOIN Hovedforløb1
  ON Medlemmer.[Cpr nummer] = Hovedforløb1.[Cpr nummer]
WHERE IsNull(Startdato) or (Dato() Not Between Startdato and Slutdato)
Avatar billede amerikaner Nybegynder
06. november 2002 - 11:11 #3
Is null er fordi du vil måske har nogen CPR i Medlemmer som ikke har post i Hovedforløb1
Avatar billede amerikaner Nybegynder
06. november 2002 - 11:12 #4
OOps:

Select Medlemmer.* FROM Medlemmer...
Avatar billede jokual.dk Nybegynder
06. november 2002 - 11:35 #5
Jeg kan ikke få det til at virke. jeg satte det bare ind i kodegeneratoren og så skrev den fejl da jeg prøvede at lukke forspørgelse ned.

Fejlen:
Syntaksen til underforspørgslen i dette udtryk er forkert.

Kontroller syntaksen, og omslut underforespørgslen med parenteser.

2

Jeg vil gerne sige at jeg er noob, når vi snakker om SQL. Jeg ved stort set ingen ting om det.

JOKUAL.dk
Avatar billede the_boss.dk Nybegynder
06. november 2002 - 11:38 #6
prøv at indsætte Select * FROM Medlemmer
LEFT JOIN Hovedforløb1
  ON Medlemmer.[Cpr nummer] = Hovedforløb1.[Cpr nummer]
WHERE IsNull(Startdato) or (Dato() Not Between Startdato and Slutdato)
Avatar billede jokual.dk Nybegynder
06. november 2002 - 11:44 #7
the_boss.dk det er det samme, som amerikaner sagde. Det hjælper mig ikke ret meget
Avatar billede the_boss.dk Nybegynder
06. november 2002 - 11:45 #8
Hov det havde jeg ikke set. Jeg arbejder på sagen
Avatar billede jokual.dk Nybegynder
06. november 2002 - 11:47 #9
OK, gør det. :-}!?
Avatar billede amerikaner Nybegynder
06. november 2002 - 12:10 #10
Undklyd jokual, jeg er i ORACLE lig nu og glemt det er

Select * FROM Medlemmer
LEFT JOIN Hovedforløb1
  ON Medlemmer.[Cpr nummer] = Hovedforløb1.[Cpr nummer]
WHERE Startdato IS NULL or (Dato() Not Between Startdato and Slutdato)
Avatar billede sjap Praktikant
06. november 2002 - 12:44 #11
jokual

Jeg ved ikke om det er en del af dit problem, men husk:

Når du bruger BETWEEN så returnerer funktionen alt MELLEM de to datoer EKSKLUSIVE selve datoerne.

Når du bruger NOT BETWEEN, så returnerer funktionen alt der ligger udenfor de to datoer INKLUSIVE selve de angivne datoer.
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