Avatar billede mite Nybegynder
06. marts 2002 - 21:59 Der er 17 kommentarer og
5 løsninger

Udtrække de husID´er som ikke er udlejet i en defineret periode

Jeg er ved at få grå hår af mit problem. Jeg har en tabel med følgende felter:
husID  startdato  slutdato
1      05-03-2002    10-03-2002
1      04-05-2002    18-05-2002
2      06-07-2002    20-07-2002
osv. osv.

På min asp-side vælges startdato og slutdato for hvornår man ønsker ferie. Når der trykkes OK skal der kun vælges de husID´er som ikke er udlejet i de valgte periode.

Håber virkelig der er nogen der kan løse denne.
Avatar billede sblar Nybegynder
06. marts 2002 - 22:07 #1
SELECT husID FROM dintabel
WHERE (dintabel.startdato NOT between start AND slut) AND
      (dintabel.slutdato NOT between start AND slut)
Avatar billede a1a1 Novice
06. marts 2002 - 22:07 #2
strsql = "select husID from tabelnavn where startdato >= '" & feriestart & "' AND slutdato <= '" & ferieslut & "' "

skulle kunne gøre det
Avatar billede mite Nybegynder
06. marts 2002 - 22:31 #3
sblar> Hvordan kan jeg få SQL-sætningen til kun at tage en og samme husID een gang istedet for at den trækker alle ens husID´er som matcher SQL-sætningen???
Avatar billede mugs Novice
06. marts 2002 - 22:35 #4
I feltet husID sætter du følgende i linien med kriterier:

[Indtast husID]

Når forespørgslen køres, vil du få en inputbox der beder dig indtaste husID. Og du vil kun få vist husID der matcher det indtastede.
Avatar billede soreno Praktikant
06. marts 2002 - 22:36 #5
select DISTINCT husid from....
Avatar billede sblar Nybegynder
06. marts 2002 - 22:36 #6
SELECT DISTINCT ....
Forøvrigt tror jeg at a1's forslag vil udtrække de huse som netop er udlejet i den ønskede periode. Ikke lige det du ville, vel?
Som a1 skriver skal dine variabler (indtastet af brugeren) selvfølgelig omsluttes af ('').
Avatar billede sblar Nybegynder
06. marts 2002 - 22:39 #7
mugs> Der er ingen forespørgsler at køre på en ASP-side ;-)
Avatar billede mugs Novice
06. marts 2002 - 22:43 #8
sblar > jeg burde have set det med ASP - men er spørgsmålet så i den rigtige kategori? Never mind blot jeres svar er rigtige. Kender intet til ASP.
Avatar billede sblar Nybegynder
06. marts 2002 - 22:52 #9
mugs> du har ret, spørgsmålet burde have været oprettet under ASP kategorien da det i realiteten ikke har noget med Access at gøre.
Avatar billede mite Nybegynder
06. marts 2002 - 22:57 #10
jeg har faktisk oprettet spørgsmålet i ASP kategorien, men der har simpelthen ikke været nogen der kunne give et svar på mit spørgsmål. Håber det er ok...jeg skal lige teste hele dit svar sblar.
Avatar billede bennytordrup Nybegynder
07. marts 2002 - 09:19 #11
Dit problem er følgende:

Du skal finde de HusID,
som ikke findes blandt de HusID
hvor (en startdato ikke er i intervallet) eller
    (en slutdato ikke er i intervallet) eller
    ((startdato er før intervallet) og (slutdato er efter intervallet))

Det skal jo så omsættes til SQL :-)
Avatar billede bennytordrup Nybegynder
07. marts 2002 - 09:24 #12
select HusID
from dintable
where husid not in (select distinct husid
                    from dintable
                    where (feriestart between startdato and slutdato) or
                          (ferieslut between startdato and slutdato) or
                          ( (feriestart < startdato) and (ferieslut > slutdato) )
Avatar billede mite Nybegynder
07. marts 2002 - 10:49 #13
benny.tordrup> Tak for dit svar...prøver lige den af. Et andet problem er at jeg har problemer med datoerne. Jeg kører formatet dd-mm-yyy. Bruger dansk opsætning i location. Når udlejer indtaster udlejning for sit hus bliver start og slutdato gemt i databasen som dd-mm-yyyy. Når jeg så skal lave min SQl-sætning for at trække de husId´er ud som ikke er udlejet i en given periode så vender den om på dd og mm når dag er =<12. Hvad skal jeg gøre for at afhjælpe dette problem? Det webhotel som det skal ligge på bruger dansk dd-mm-yyyy. Håber der er en der har en løsning.
Avatar billede bennytordrup Nybegynder
07. marts 2002 - 10:50 #14
Jeg ved godt, at det er et lidt større arbejde i sql-dannelsen, men du kan bruge funktionen DateSerial(Year, Month, Day) i forbindelse med datosammenligninger i Access.
Avatar billede a1a1 Novice
07. marts 2002 - 12:34 #15
til datoer brug ALTID US format (YYYY-MM-DD), i din sql sætning, formatet der vises vil følge din location indstilling

så er der aldrig problemer ligegyldigt hvilken opsætning serveren har
Avatar billede terry Ekspert
07. marts 2002 - 21:07 #16
a1 is right, use the US format which is actuall (MM-DD-YYYY) or as a1 says YYYY-MM-DD
and one more thing

BETWEEN #YYYY-MM-DD# AND #YYYY-MM-DD#
Avatar billede terry Ekspert
07. marts 2002 - 21:10 #17
an SQL statament for an Access database is in the correct category, nothing to do with ASP!
Avatar billede mite Nybegynder
08. marts 2002 - 10:51 #18
Nu har jeg endelig fundet en løsning til mit problem. Jeg er gået væk fra SQL-sætningen og i stedet finder de ikke-udlejede-husID´er i IF-sætninger. Måske ikke den helt perfekte løsning, idet den måske kører lidt langsommere end i en SQL-sætning...nu må vi se, men det vigtigste er at jeg har fundet en 100% køreklar løsning. Jeg vil dog alligevel dele point ud for der er kommet mange brugbare svar som jeg kan drage nytte af senere hen.
Tusind tak jeres hjælp.
Avatar billede terry Ekspert
08. marts 2002 - 11:02 #19
Hi mite>Not a bad idea in doing iyt in code instead. If I had known it was also a posibility then we could have helped with that too.

http://www.eksperten.dk/spm/180278
Avatar billede a1a1 Novice
08. marts 2002 - 11:04 #20
>> Terry
with MM-DD-YYYY it is impossible for a computer to recognize the dateformat, if both MM and DD is 12 or below...:)

YYYY-MM-DD CAN NEVER BE WRONG, NO DATE FORMAT IS YYYY-DD-MM
Avatar billede terry Ekspert
08. marts 2002 - 11:09 #21
The STANDARD method for an SQL Select IS MM-DD-YYYY. This has NOTHING to do with regional settings or anything!
I agree that YYYY-MM-DD will always work.

The SQL SELECT will return the infromationa nd then it is up to the application to display the date in the correct format. The date is stored in the database in the same format not matter which country you are in
Avatar billede a1a1 Novice
08. marts 2002 - 11:40 #22
found it....:)

Standard ANSI/ISO SQL-92 has a full specification for dates and times that are based on ISO-8601 standards and should have no Year 2000 problems. This standard requires the "yyyy-mm-dd" format and 24-hour time formats based on the UTC (Universal Coordinated Time, formerly the GMT or Greenwich Mean Time) and has a lot of details in it.

http://www.dbmsmag.com/9707d06.html
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