Avatar billede martens Guru
12. januar 2021 - 22:33 Der er 3 kommentarer og
1 løsning

Kan IKKE finde booking, der starter eller slutter på den aktuelle dato...

Jeg roder lige med en forespørgsel der skal give mig data på køretøjer der har været booket på en specifik dato ( her er det den 24 FEB 2019 )

Jeg kan få data på alle bookinger der starter før 24 FEB og slutter efter 24 FEB
Jeg kan få samtlige bookinger der starter den 24 FEB og slutter samme dag.
men men men
Jeg kan ikke få det til at virke med at  vise de bookinger, der starter FØR 24 FEB og slutter den 24 FEB og heller ikke dem, der starter den 24 FEB og slutter efter den 24 FEB
Hvad pokker gør jeg galt ?
Jeg har en tabel med samtlige køretøjer, der har været til disposition den 24 FEB soom jeg har JOIN´et med tabellen med samtlige afsluttede bookinger.
Jeg udsøger derefter bookinger i Carpools der i navnet ender på MFM eller LUP ...

her er SQL koden :


SELECT [FEB 2019].REG, tbl_ALL_Finished_bookings.Carpool, tbl_ALL_Finished_bookings.Start, tbl_ALL_Finished_bookings.Stop, tbl_ALL_Finished_bookings.Company
FROM [FEB 2019] LEFT JOIN tbl_ALL_Finished_bookings ON [FEB 2019].REG = tbl_ALL_Finished_bookings.[Reg nr]
WHERE (((tbl_ALL_Finished_bookings.Carpool) Like "*"+"mfm" Or (tbl_ALL_Finished_bookings.Carpool)="*"+"lup") AND ((tbl_ALL_Finished_bookings.Start)>#2/24/2019 0:1:0#) AND ((tbl_ALL_Finished_bookings.Stop)<#2/24/2019 23:59:0#)) OR (((tbl_ALL_Finished_bookings.Carpool) Like "*"+"mfm" Or (tbl_ALL_Finished_bookings.Carpool)="*"+"lup") AND ((tbl_ALL_Finished_bookings.Start)<#2/24/2019 0:1:0#) AND ((tbl_ALL_Finished_bookings.Stop)>#2/24/2019 23:59:0#)) OR (((tbl_ALL_Finished_bookings.Carpool) Like "*"+"mfm" Or (tbl_ALL_Finished_bookings.Carpool)="*"+"lup") AND ((tbl_ALL_Finished_bookings.Start)<#2/24/2019 0:1:0#) AND ((tbl_ALL_Finished_bookings.Stop)>#2/24/2019 23:59:0#));

- er der et klogt hoved, der kan hjælpe mig på ret kurs..

Og ja jeg ved at der er bookinger, der starter den 23 FEB og slutter den 24 FEB og bookinger der starter den 24 FEB og slutter den 25 FEB .. er manuelt testet....


- er der et klogt hoved, der kan hjælpe mig på ret kurs..

på forhånd tak !

mvh martens
Avatar billede martens Guru
12. januar 2021 - 22:51 #1
Tror jeg er kommet i dette retning .. kom lige til at tænke på BETWEEN  ...
Check denne kode og kom gerne med kommentarer ...
--  CODE START --------------------------------------------------------------

SELECT [FEB 2019].REG, tbl_ALL_Finished_bookings.Carpool, tbl_ALL_Finished_bookings.Start, tbl_ALL_Finished_bookings.Stop, tbl_ALL_Finished_bookings.Company
FROM [FEB 2019] LEFT JOIN tbl_ALL_Finished_bookings ON [FEB 2019].REG = tbl_ALL_Finished_bookings.[Reg nr]
WHERE (((tbl_ALL_Finished_bookings.Carpool) Like "*"+"mfm" Or (tbl_ALL_Finished_bookings.Carpool)="*"+"lup") AND ((tbl_ALL_Finished_bookings.Start)>#2/24/2019 0:1:0#) AND ((tbl_ALL_Finished_bookings.Stop)<#2/24/2019 23:59:0#)) OR (((tbl_ALL_Finished_bookings.Carpool) Like "*"+"mfm" Or (tbl_ALL_Finished_bookings.Carpool)="*"+"lup") AND ((tbl_ALL_Finished_bookings.Start)<#2/24/2019 0:1:0#) AND ((tbl_ALL_Finished_bookings.Stop)>#2/24/2019 23:59:0#)) OR (((tbl_ALL_Finished_bookings.Carpool) Like "*"+"mfm" Or (tbl_ALL_Finished_bookings.Carpool)="*"+"lup") AND ((tbl_ALL_Finished_bookings.Start)<#2/24/2019 0:1:0#) AND ((tbl_ALL_Finished_bookings.Stop)>#2/24/2019 23:59:0#)) OR (((tbl_ALL_Finished_bookings.Carpool) Like "*"+"mfm" Or (tbl_ALL_Finished_bookings.Carpool)="*"+"lup") AND ((tbl_ALL_Finished_bookings.Start) Between #2/24/2019 0:1:0# And #2/24/2019 23:59:0#) AND ((tbl_ALL_Finished_bookings.Stop)>#2/24/2019 23:59:0#)) OR (((tbl_ALL_Finished_bookings.Carpool) Like "*"+"mfm" Or (tbl_ALL_Finished_bookings.Carpool)="*"+"lup") AND ((tbl_ALL_Finished_bookings.Start)<#2/24/2019 0:1:0#) AND ((tbl_ALL_Finished_bookings.Stop) Between #2/24/2019 0:1:0# And #2/24/2019 23:59:0#));
Avatar billede Gustav Ekspert
12. januar 2021 - 23:04 #2
Prøv at trimme datokriterierne og reducér til:

SELECT
    [FEB 2019].REG,
    tbl_ALL_Finished_bookings.Carpool,
    tbl_ALL_Finished_bookings.Start,
    tbl_ALL_Finished_bookings.Stop,
    tbl_ALL_Finished_bookings.Company
FROM
    [FEB 2019]
LEFT JOIN
    tbl_ALL_Finished_bookings
    ON [FEB 2019].REG = tbl_ALL_Finished_bookings.[Reg nr]
WHERE
    (tbl_ALL_Finished_bookings.Carpool Like "*mfm" Or tbl_ALL_Finished_bookings.Carpool Like "*lup") AND
    (
        (tbl_ALL_Finished_bookings.Start >= #2/24/2019# AND
        tbl_ALL_Finished_bookings.Stop < #2/25/2019#)
        OR
        (tbl_ALL_Finished_bookings.Start < #2/24/2019# AND
        tbl_ALL_Finished_bookings.Stop >= #2/25/2019#));
Avatar billede terry Ekspert
13. januar 2021 - 10:35 #3
You could try changing logic around, so that you test if the date you are interested in is between the booking period.

WHERE #2/24/2019# Between DateValue([Start]) And DateValue([Stop]

DateValue us used to remove time part, otherwise it probably wont work as required
Avatar billede terry Ekspert
13. januar 2021 - 12:03 #4
I remember we had a similar quesion a while ago

https://www.computerworld.dk/eksperten/spm/1020585
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

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