Avatar billede cesil Nybegynder
13. november 2002 - 11:10 Der er 3 kommentarer og
1 løsning

Select

Jeg har mistet overblikket over den her.
Der mangler i mit resultat de lokaler der endnu ikke er booked den pågældende dag.
Hvis jeg fx søger på 23.11.2002 hvor der ikke er booked noget som helst endnu finder den ingenting, eller hvis jeg søger på 11.11.2002 finder den fint nok de lokaler der er booked men som er ledige på det valgte tidspunkt, men den finder ikke de lokaler der ikke er booked på dagen.


SELECT    MAX_MEETINGROOM_BOOKED.dateto AS Expr1, MAX_MEETINGROOM_BOOKED.datefrom AS Expr2, MAX_MEETINGROOM.*
FROM        MAX_MEETINGROOM_BOOKED RIGHT OUTER JOIN
                      MAX_MEETINGROOM ON MAX_MEETINGROOM.id = MAX_MEETINGROOM_BOOKED.meetingroomid
WHERE    (MAX_MEETINGROOM_BOOKED.meetingroomid IS NULL) OR
                      (MAX_MEETINGROOM_BOOKED.booked = 1) AND (MAX_MEETINGROOM.chairs - MAX_MEETINGROOM_BOOKED.bookedchairs >= 4)OR
                      (MAX_MEETINGROOM_BOOKED.booked = 1) AND (MAX_MEETINGROOM_BOOKED.datefrom >= '20021123 00:00') AND
                      (MAX_MEETINGROOM_BOOKED.dateto <= '20021123 23:59') AND (NOT ('20021123 20:45' BETWEEN MAX_MEETINGROOM_BOOKED.datefrom AND
                      MAX_MEETINGROOM_BOOKED.dateto)) AND (NOT ('20021123 23:30' BETWEEN MAX_MEETINGROOM_BOOKED.datefrom AND
                      MAX_MEETINGROOM_BOOKED.dateto))
ORDER BY MAX_MEETINGROOM.meetingname, MAX_MEETINGROOM_BOOKED.datefrom
Avatar billede amerikaner Nybegynder
13. november 2002 - 11:56 #1
need some "(" ...

WHERE   
(MAX_MEETINGROOM_BOOKED.meetingroomid IS NULL) OR
                      ((MAX_MEETINGROOM_BOOKED.booked = 1) AND (MAX_MEETINGROOM.chairs - MAX_MEETINGROOM_BOOKED.bookedchairs >= 4)) OR
                      ((MAX_MEETINGROOM_BOOKED.booked = 1) AND (MAX_MEETINGROOM_BOOKED.datefrom >= '20021123 00:00') AND
                      (MAX_MEETINGROOM_BOOKED.dateto <= '20021123 23:59') AND (NOT ('20021123 20:45' BETWEEN MAX_MEETINGROOM_BOOKED.datefrom AND
                      MAX_MEETINGROOM_BOOKED.dateto)) AND (NOT ('20021123 23:30' BETWEEN MAX_MEETINGROOM_BOOKED.datefrom AND
                      MAX_MEETINGROOM_BOOKED.dateto))
Avatar billede amerikaner Nybegynder
13. november 2002 - 11:56 #2
glemt den sidste ")"

WHERE   
(MAX_MEETINGROOM_BOOKED.meetingroomid IS NULL) OR
                      ((MAX_MEETINGROOM_BOOKED.booked = 1) AND (MAX_MEETINGROOM.chairs - MAX_MEETINGROOM_BOOKED.bookedchairs >= 4)) OR
                      ((MAX_MEETINGROOM_BOOKED.booked = 1) AND (MAX_MEETINGROOM_BOOKED.datefrom >= '20021123 00:00') AND
                      (MAX_MEETINGROOM_BOOKED.dateto <= '20021123 23:59') AND (NOT ('20021123 20:45' BETWEEN MAX_MEETINGROOM_BOOKED.datefrom AND
                      MAX_MEETINGROOM_BOOKED.dateto)) AND (NOT ('20021123 23:30' BETWEEN MAX_MEETINGROOM_BOOKED.datefrom AND
                      MAX_MEETINGROOM_BOOKED.dateto)))
Avatar billede cesil Nybegynder
13. november 2002 - 14:57 #3
Det har jeg prøvet.
Paranteserne bliver fjernet igen når jeg fyrer queryen af i Query analyseren.
Avatar billede cesil Nybegynder
12. december 2002 - 14:08 #4
Jeg lukker den er.
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
Computerworld tilbyder specialiserede kurser i database-management

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