Avatar billede previ Nybegynder
15. maj 2003 - 13:09 Der er 12 kommentarer og
1 løsning

Beregning af akkumuleret saldo

Hej

Jeg har et problem vedr. beregning af akkumeleret værdi i Access. Der findes åbenbart ingen funktion i Access der kan finde ud af dette, men jeg forestiller mig, at jeg kan køre en makro der opretter dette felt for den akkumulerede saldo.

Mine nuværende felter:

Kundenummer
Dato
Saldo

Tabellen er sorteret efter dato. Dvs. jeg via en makro ønsker at få oprettet en ny tabel, med tilføjelse af en akkumuleret saldo for hver kunde, der således kommer til at have følgende felter:

Kundenummer
Dato
Saldo
Akkumuleret saldo

Mvh.

previ
Avatar billede tuctoh Nybegynder
15. maj 2003 - 13:16 #1
SELECT SUM(saldo) as akksaldo FROM mintabel WHERE kundernummer = 24

sådan kan det eventuelt gøres hvis du bare skal have saldoen for en enkelt kunde...
Avatar billede venne Nybegynder
15. maj 2003 - 13:38 #2
Jeg er ikke sikker på at jeg forstår dig 100%, men giver denne forespørgsel det du er ude efter:

SELECT Kundenummer, Dato, Saldo, (SELECT SUM(Saldo) FROM Tabel T2 WHERE T2.Dato <= Tabel.Dato) AS AkkumuleretSaldo
FROM Tabel
Avatar billede tuctoh Nybegynder
15. maj 2003 - 13:43 #3
venne, skulle dette så ikke være DISTINCT Kundenummer, Dato... ?
Avatar billede previ Nybegynder
15. maj 2003 - 14:26 #4
Jeg skal nok forklare tingene lidt bedre og jeg har også brugt vildledende navne for felterne.

Det drejer sig en beregning af en saldoværdi (tænk på kontoudskriften fra banken) som ændres hver gang der sker en registrering (ind- og udbetalinger). Det jeg ønsker, er en makro, der ud fra en tabel (TABEL1) med kundenummer, datofelt og et beløb, der eksempelvis ser således ud:

Kundenummer  Dato    Beløb
12            10.05    100
12            12.05    200
30            06.02    150
30            15.04    250
Etc.

opretter en ny tabel (TABEL2) med et nyt saldo-felt, som kommer til at se således ud:

Kundenummer  Dato    Beløb  Saldo
12            10.05    100    100
12            12.05    200    300
30            06.02    150    150
30            15.04    250    400
Etc.


Dvs. programmet skal gruppere data efter kundenummer og siden summere alle beløbene fra den første dato for hver kunde (det jeg kalder akkumuleret saldo er sådan set ikke andet end akkumuleret sum af beløbene i tabellen) i et nyt saldo-felt i en ny tabel.
Avatar billede venne Nybegynder
15. maj 2003 - 15:21 #5
Jeg er ikke ret god til makroer, men denne forespørgsel gør svjks det du ønsker:

SELECT Kundenummer, Dato, Beløb,
    (SELECT SUM(Beløb)
    FROM Tabel1 T
    WHERE T.Kundenummer = Tabel1.Kundenummer
      AND T.Dato <= Tabel1.Dato) AS Saldo
INTO Tabel2
FROM Tabel1
Avatar billede previ Nybegynder
15. maj 2003 - 15:40 #6
Den forespørgsel lægger ikke en akkumuleret saldo-sum ud for hvert beløb, men istedet det aktuelle saldobeløb. Kig lidt nærmere efter indholdet i ovenstående Saldo-felt og se det i forhold til Beløb-feltet og du vil forstå, hvad det er jeg mener.
Avatar billede venne Nybegynder
15. maj 2003 - 15:54 #7
Nu har jeg kigget nærmere efter.
Jeg har også prøvet det i en Access-database med dine data fra TABEL1 og jeg får præcis det du ønsker i TABEL2. Er der flere krav til løsningen du ikke har nævnt?
Avatar billede previ Nybegynder
15. maj 2003 - 16:50 #8
Undskyld Venne, men du er genial.

Man skal nok være opmærksom på at man skal have en unik record for hvert beløb, dvs. man får problemer, hvis en kunde har 2 registreringer samme dato. Men jeg kan sagtens bruge det du kommer med, idet jeg bruger koden for registreringen, der sammen med kundenummeret er unikt, i tabellen.

Jeg får ikke tildelt dig points, fordi du ikke har givet "Svar", men "Kommentar". Så svar et eller andet og du får 200 points.
Avatar billede martin_moth Mester
18. maj 2003 - 18:34 #9
previ:
Husk på, at du ikke må oprette det samme spørgsmål flere gange
http://www.eksperten.dk/spm/353018
http://www.eksperten.dk/spm/352953

Og måske skulle du afpasse antal points til sværhedsgraden. Et par råd, der kan forhindre at du bliver upopulær på Eksperten :o)
Avatar billede previ Nybegynder
19. maj 2003 - 09:48 #10
martin moth:
tak for oplysningen, det vidste jeg ikke (jeg var usikker på kategorien). Ellers vil jeg mene, at det til enhver tid bliver den enkelte spørgsmålsstiller, der afgør sværhedsgraden (for mig var det et svært spørgsmål), dog jeg må indrømme at løsningen bestemt ikke ser ud af meget, men det kan man (ihvertfald ikke jeg) jo ikke vide på forhånd.
Avatar billede venne Nybegynder
19. maj 2003 - 09:49 #11
Ja, jeg glemmer tit at klikke i 'svar'...

Læg også mærke til hvad martin_moth siger - han har som regel ret...
Avatar billede martin_moth Mester
19. maj 2003 - 10:23 #12
venne:
  Øhh, var det sarkastisk? Anyway - jeg mener det såmænd blot som et godt råd...
Avatar billede venne Nybegynder
19. maj 2003 - 10:40 #13
martin_moth>
På ingen måde sarkastisk, det var bare for at bifalde gode råd.
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
Kurser inden for grundlæggende programmering

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