02. juni 2003 - 20:42Der er
32 kommentarer og 1 løsning
Problemer med dato
er der så nogen der kan komme med en ide til hvordan man ud fra foreksempel finder afstanden mellem 4 datoer. F.eks. Hvis den ene dato er 02-10-2000 og den anden er 05-10-2000 så er afstanden 3 dage, hvis den næste dato så efterfølgende er 10-10-2002 så er den afstand 5 dage. Kan nogen give mig et hint til hvordan det kan gøres?
Hvor felterne Dato1 og Dato2 er felter i din tabel. Hvis du vil have den 3. dato med i en beregning og beregne forskellen mellem f.eks. Dato2 og Dato3 hedder koden:
Antaldage = DateDiff("d", Dato2, Dato3)
Ordet "d" er et udtryk for at du vil have differencen i dage.
Hvis du vil have beregningenj i en forespørgsel skal det se sådan ud:
Udtryk1: (DateDiff("yyyy";[Dato1];[Dato2]))
Her bliver beregningen blot vist i år ("yyyy") i.s.f. dage ("d"). Du kan også vælge at få det vist i:
yyyy Year q Quarter m Month y Day of year d Day w Weekday ww Week h Hour n Minute s Second
Opret samtlige datoer i Tabel2. Det kan gøres meget let med en VBA procedüre, derefter henter du begge tabeller ind i din forespørgsel, joinforbinder dem og laver et udtryk som jeg har skitseret.
Hvis du lægger din e-mail kan jeg sende dig en tabel med alle datoer fra nu og til Juleaften år 9999.
Men du har jo et problem: Hvordan vil du få differencen til 10 mellem dato4 og Null?
Tja??? Oprindeligt skal jeg ikke bruge Tabel 2 til noget men kun afstanden af dage imellem dato1 og dato 2 i tabel 1 og derefter aftanden mellem Dato2 og dato3.
Tabel 1 afstand --------------------- Dato1 Afstand mellem Dato1 og dato2 Dato2 Afstand mellem Dato2 og dato3 Dato3 Afstand mellem Dato3 og dato4 Dato4 Afstand mellem Dato4 og dato5
det spørgsmål som henrik henviser til er jo ud fra en tekst fil men jeg har sådanset kun en tabel med datoer at arbejde med. Hvis du er en rigtig guttermand kan jeg du hjælpe, betyder meget at jeg får den til at virke
Beklager - Men den der SQL er for vild for mig. Det vil jeg uden betænkeligheder trygt overlade til thomasjepsen og terry. Det er vist det bedste i det lange løb :o)
Jeg vil gerne hjælpe - men med SQL er jeg ude af billedet. Og jeg tvivler på, at mit VBA eksempel vil fungere. Men er forskellen mellem Dato1 og Dato2 altid ens?
kim1106>This is the second question you have concerning this question, and IF I am not mistaken there is a third (under another username). I'll just find it and get back!
Jeg har en SQL, jeg altid finder frem og bygger videre på når jeg skal finde den "forrige" værdi. Du skal have en tabel: tabel1 med feltet dato.
Herefter kan du prøve at analysere denne SQL:
select t1.dato, null as forrige from tabel1 as t1 Where dato = (select min(dato) from tabel1) UNION ALL SELECT T1.Dato as dato, T2.dato AS Forrige FROM Tabel1 AS T1 , Tabel1 AS T2 WHERE T2.Dato = (SELECT Max(Dato) FROM Tabel1 where Dato<T1.Dato) ORDER BY dato;
Jeg tror meget hurtigt jeg kan sætte en stopper, for at det er den samme person der stiller spørgsmålene..
det ligger nemlig sådan, at der nettop er blevet stillet en skole opgave, hvor dette er nødvendigt for at lave et af spørgsmålene....
men jeg kan helt sikkert godt give jer ret i at det må være irriterende at skulle læse de samme indlæg, og svare på de samme spørgsmål....
Til Niels, i din forrige post hvor du skriver om hvordan du henter den "forrige" værdi frem, så kan jeg godt se at det virker, og jeg har såmend også testet det. problemet ligger lidt i når jeg skal annalysere hvad det er der sker... jeg har en rimelig god anelse om hvad det er der sker, men jeg tænkte på om jeg evt. kunne maile dig hvad jeg mener? (jeg har vist din mail adr. fra en anden gang..) der er intet værre end at skrive noget man ikke er 110% sikker på hvordan virker!
Kim - og nej det er ikke mine de andre logins, hvis i skulle være fristet til at spørge!
kim1106 eller kimjdoek - er det en skole for folk der hedder Kim ????
Min foresp består af af en union den øverste gi'r sig selv. (min(dato) og null
Den nederste laver det kartesiske produkt af tabellen tabel1 as t1 og tabel1 as t2 - altså den samme tabel bliver ganget. Det vil give alle kombinations muligheder for datoerne i tabel1 i 2 kolloner. Her udvælger jeg KUN dem hvor t2.dato = max(Dato) MEN < t1.dato.
nih, nej men man skulle tro det, for der går rent faktisk kun mig og en anden Kim på den årgang... sååå....
men eftersom jeg fik et svar af dig har jeg ikke spor imod at oprette et spørgsmål for at overføre point til dig, men som sagt er denne post ikke min...
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.