01. juli 2009 - 16:20Der er
10 kommentarer og 1 løsning
År til dato beregning
Jeg skal have lavet en ekstra kolonne i en tabel hvor jeg har et "år til dato" beløb for hver record. Tabellen består af kolonnerne måned, konto, afdeling, beløb pr måned. Så jeg vil altså gerne have tilføjet en "år til dato" kolonne i min tabel. Men jeg kan ikke umiddelbart finde nogen smart måde at beregne den på. Tænker lidt på om man kan lave noget subselect eller lign.
Hvad f.....!! Jeg har lidt problemer med at siden ikke opdaterer mine kommentarer når jeg skriver. Jeg havde rent faktisk lavet en meget fin kommentar i onsdags, men den er åbenbart ikke kommet med. Nå men here goes again.
Måned er et dato felt i min eksisterende tabel. Nedenfor er en meget simplificeret model af min tabel. Dato konto afdeling belob_md belob_ytd 31/01/2009 10 100 1 1 31/01/2009 20 100 1 1 28/02/2009 10 100 1 2 28/02/2009 20 100 1 2 28/02/2009 30 100 1 1
Belob_ytd er ikke i min tabel idag, men det der er vist ovenfor er sådan den skal beregne det. Planen er at tabellen skal hentes via en query i excel, hvor jeg bl.a. afgrænser på dato og afdeling via parametre. Derefter viser jeg de færdige data i en pivottabel, og her skal der hver måned kunne vises både månedstal og YTD tal for hver måned.
Hope it makes sence. Hvis du har andre gode ideer andet end den beregning i Access, som jeg kun kan se være løsningen er de velkomne.
SELECT T.Dato, T.konto, T.afdeling, T.beløb_md, T.beløb_ytd, (SELECT Sum([beløb_md]) FROM tbl1 S WHERE S.Konto = T.Konto AND S.afdeling = T.afdeling and S.dato <= T.dato) AS YTD FROM tbl1 AS T;
In the example I have included the beløb_ytd just to make sure that the calculated YTD is the same. So you dont actually need beløb_ytd in the table as it can be calculted in a query.
I mit originale datasæt har jeg datoer i 2008 også, så for at løse det har jeg tilføjet year(s.dato)=year(t.dato).
SELECT T.Dato, T.konto, T.afdeling, T.beløb_md, T.beløb_ytd, (SELECT Sum([beløb_md]) FROM tbl1 S WHERE S.Konto = T.Konto AND S.afdeling = T.afdeling and year(s.dato)=year(t.dato) and S.dato <= T.dato) AS YTD FROM tbl1 AS T;
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.