30. september 2001 - 20:16Der 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.
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?
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 – f.eks. Forms!DatoFormular!Start2
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 !.
Synes godt om
Ny brugerNybegynder
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.