Avatar billede sjoran Nybegynder
01. juli 2009 - 16:20 Der 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.
Avatar billede terry Ekspert
01. juli 2009 - 16:43 #1
Why do you need an extra field containing this information? And unless you have a date field I dont see how you can calculate "år til dato beløb".

Try giving an example of your data and also what you want to see in the  result
Avatar billede terry Ekspert
02. juli 2009 - 13:54 #2
if you can give sone feedback its easier to help
Avatar billede sjoran Nybegynder
03. juli 2009 - 08:11 #3
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.
Avatar billede terry Ekspert
03. juli 2009 - 08:50 #4
From the example I aaasume that belob_ytd is for afdeling and konto not just afdeling?
Avatar billede sjoran Nybegynder
03. juli 2009 - 09:02 #5
Det er korrekt. Belob_ytd skal på hver enkelt række i tabellen. Jeg har lige udvidet mit eksempel for at gøre det mere synligt hvad jeg ønsker.

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    10    200        1        1
28/02/2009    20    100        1        2
28/02/2009    30    100        1        1
31/03/2009    10    100        1        3
31/03/2009    10    200        1        2
31/03/2009    20    100        1        3
Avatar billede terry Ekspert
03. juli 2009 - 09:06 #6
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;
Avatar billede terry Ekspert
03. juli 2009 - 09:08 #7
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.
Avatar billede sjoran Nybegynder
03. juli 2009 - 09:17 #8
Fantastisk. Works like a charm.
Avatar billede terry Ekspert
03. juli 2009 - 09:23 #9
Super, tak for points
Avatar billede sjoran Nybegynder
03. juli 2009 - 09:25 #10
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;
Avatar billede terry Ekspert
03. juli 2009 - 09:33 #11
Yes that necessary :o)
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