Avatar billede wizzcat Nybegynder
30. september 2001 - 20:16 Der er 2 kommentarer og
1 løsning

SQL i forbindelse med udregninger

Jeg har en tabel med 2 datofelter, start og slut som udgør en periode, jeg kan indtaste 2 andre datoer i en formular som udgør en anden periode.
Problem:
Hvordan formulere man en SQL sætning i en formular der medtager de to datoer fra tabellen, samt et nyt felt. (det er ikke problemet)
Hvor det nye felt skal indeholde det antal dage som de to perioder overlapper hinanden med???

resultatet skal kunne virke ved alle kombinationer af datoer.
Avatar billede terry Ekspert
30. september 2001 - 20:58 #1
What do you want to see exactly ion the New field?
Have you tried drawing your problem on a piece of paper just to see how many possibilities there are. Draw two vertical lines representing the periods you enter in the form. Then plot in other periods representing those that COULD come from your table. You will have at least 6 possibilities. Some where the period is between the forms start and end, some overlapping both the start and end. Others overlapping either the start or the end. And also those not overlapping at all.

So is it the tables start date, or the end date?
you are interested in. And in relation to the forms start or end date?

Hope you can see what the problem is.
Avatar billede jens-peter Nybegynder
30. september 2001 - 21:07 #2
Jeg er enig med Terry i, at der er 6 muligheder, men de kan nu forholdsvis let løses ved at finde maksimum for starttider og minimum for sluttider.

SELECT Tabel.Start1, Tabel.Slut1, Tabel.Start2, Tabel.Slut2, IIf([Start1]>[Start2],[Start1],[Start2]) AS Start3, IIf([Slut1]<[Slut2],[Slut1],[Slut2]) AS Slut3, IIf([Slut3]>=[Start3],DateDiff(\"d\",[Start3],[Slut3]),\"Intet overlap\") AS NDage
FROM Tabel;

I denne SQL-sætning har jeg antaget at begge tidsperioder (Start1-Slut1 og Start2-Slut2) er indeholdt i tabellen, men hvis nogle kommer fra en formular kan man i stedet skrive Forms!formularnavn!feltnavn &#8211; f.eks. Forms!DatoFormular!Start2

mvh/Jens-Peter
Avatar billede wizzcat Nybegynder
01. oktober 2001 - 17:03 #3
Tak for det begge to.
Jeg fik løst mit problem ud fra dit svar Jens. omend jeg lavede en funktion i VB til at løses det. Ikke helt sql. men det går indtil videre !.
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