18. februar 2004 - 23:39Der er
10 kommentarer og 1 løsning
SQL sætning. Count på dato i 2004
Jeg har en svær opgave... Jeg skal have talt antallet af dage mellem 2 givne datoer, men kun i 2004. Her er et eksempel... Mellem 30-12-2003 og 2-1-2004 er der 2 dage fordi der kun er 2 dage i 2004. Dvs jeg skal i min SQL sætning erstatte alle datoer før 2004 med 1-1-2004, men uden at det ændre data i tabellen.
Kan dette lade sig gøre? Er der noget som hedder replace eller UPDATE i en SELECT? Det skal siges at det skal gøres i Access. Er der en løsning med nogle temp. tabeller?
Det skal lige siges at datoerne er startDato og slutDato så man kan nemt finde til og fra dato. Problemet ved den du har givet her er at den slet ikke tager dem med som går ind i 2003. Det skal den... Den skal bare først tælle fra 1-1-2004
Lav en et udtryk med en IIf der måler om startdato er < 2004-01-01, og returnerer 2004-01-01 hvis det er sandt og startdato hvis det er falsk. Derefter en Datediff mellem Udtryk1 og slutdato:
SELECT Tabel1.startdato, IIf([startdato]<#1/1/2004#,#1/1/2004#,[startdato]) AS Udtryk1, Tabel1.slutdato, DateDiff("d",[Udtryk1],[slutdato]) AS Udtryk2 FROM Tabel1;
OK!!! Det er en lille lækker måde at gøre det på. [mugs]>>Du skulle vel ikke have et link til et sted hvor man kan læse om de lidt mere raffinerede SQL syntax? Det er så længe siden jeg har arbejdet med det at jeg har glemt det meste :(
SELECT tblDates.ID, tblDates.StartDato, tblDates.SlutDato, DateDiff("d",IIf([startdato]<#1/1/2004#,#1/1/2004#,[startdato]),[SlutDato])+1 AS days FROM tblDates
NOTE: In your example you say that There are two days between 30-12-2003 and 2-1-2004 because there are only two days in 2004!
(Mellem 30-12-2003 og 2-1-2004 er der 2 dage fordi der kun er 2 dage i 2004)
Actually there is only 1 (BETWEEN)!
But if yo want to include the slutdato in the count then I have added an extra day to the calculation!
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.