Avatar billede general_custer Nybegynder
19. august 2006 - 20:22 Der er 4 kommentarer og
1 løsning

Søge i database vha. datoer

Hej allesammen...Håber i kan hjælpe mig med et lille problem.

Lige nu har jeg en database der holder styr på en masse medarbejdere og hvilke projekter de er tilknyttet til. Desuden holder databasen styr på i hvilke tidsperioder som en person er tilknyttet databasen i (med en start og en slutdato).

Mit spørgsmål lyder på hvordan jeg kan søge efter om en person er ledig til at udføre en bestemt type opgave. Jeg definerer ledighed som når en person slet ikke er tilmeldt noget i den tidsperiode man angiver.

selve den query'en/metode som jeg har brug for skal virke således:

ledighed(1.marts,5.marts)

Hvis personen er ledig mellem 1. marts og 5. marts så returneres true, ellers false. Personen er ledig hvis denne ikke har nogen tilmeldinger i perioden mellem 1.marts og 5.marts.

Håber nogen kan hjælpe mig.
Avatar billede dr_chaos Nybegynder
19. august 2006 - 20:27 #1
du kan bruge noget i denne stil:


if exists (SELECT * FROM tabel
where
slutdatofelt > CONVERT(DateTime, '07-19-2006 11:00:00', 105)
AND
slutdatofelt < CONVERT(DateTime, '07-19-2006 12:00:00', 105))
BEGIN
--ikke ledig
return 0
END
ELSE
BEGIN
--ledig
return 1
END
Avatar billede general_custer Nybegynder
19. august 2006 - 20:35 #2
Jeg siger mange tak for svaret Dr_chaos...

Jeg har lige en enkelt tilføjelse som jeg håber at få svar på.

Hvis jeg nu ændrer ledighedsbegrebet til at man nu må have op til 2 aftaler i et givent tidsrum hvordan skal metoden så se ud?
Avatar billede dr_chaos Nybegynder
19. august 2006 - 20:42 #3
noget med
if ((SELECT count(*) FROM tabel
where
slutdatofelt > CONVERT(DateTime, '07-19-2006 11:00:00', 105)
AND
slutdatofelt < CONVERT(DateTime, '07-19-2006 12:00:00', 105)>2 )

Men du skal nok lave nogle ekstra checks. både at startdate<enddate  og der skal formodentlig også laves noget tjek på startdatoen og nogle andre ting.
Men der er noget du bedst selv kan teste.
Avatar billede general_custer Nybegynder
19. august 2006 - 20:44 #4
mange tak....kan du ikke lige smide et svar.
Avatar billede dr_chaos Nybegynder
19. august 2006 - 20:52 #5
svar :)
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