Avatar billede jesperdyhr Praktikant
13. november 2004 - 11:20 Der er 28 kommentarer og
1 løsning

Beregning af saldo på kontokort

Hej eksperter

Et simpelt spørgsmål:

Jeg har en tabel med en masse posteringer på kundens kont, der indeholder et beløb for posteringen på en given dato.
Det ville jeg gerne tælle sammen til en saldo ud for hver dato, så man kan følge med i udviklingen i kundens saldo.

Altså for hver record skal der være en sum af alle foregående records.
Listen er naturligvis sorteret i datoorden-stigende.

Håber I kan hjælpe ;-)
Avatar billede michael_stim Ekspert
13. november 2004 - 11:47 #1
Noget á la:
SELESCT SUM("saldo")FROM tabel WHERE bruger=? GROUP BY DATO
Avatar billede michael_stim Ekspert
13. november 2004 - 11:49 #2
SELECT SUM("saldo") FROM tabel WHERE bruger=? GROUP BY DATO
Slåfejlene var gratis ;o)
Avatar billede michael_stim Ekspert
13. november 2004 - 11:57 #3
SELECT SUM("saldo") FROM tabel WHERE bruger=? GROUP BY DATO ASC /Stigende
SELECT SUM("saldo") FROM tabel WHERE bruger=? GROUP BY DATO DESC /Faldende
Avatar billede jesperdyhr Praktikant
13. november 2004 - 12:07 #4
Dén går altså ikke. Den summerer jo blot posteringern på den givne dato.
Der skal laves en sum for alle foregående posteringer pr. dato. Ikke kun på datoen.
Avatar billede michael_stim Ekspert
13. november 2004 - 12:16 #5
Jeg er heller ikke helt med på hvad du mener. Skal pröve at läse hvad du har skrevet, LANGSOMT.
Avatar billede michael_stim Ekspert
13. november 2004 - 12:24 #6
OK, nu tror jeg, jeg er med.
12/4-2004=500
12/5-2004=300+500(12/4-2004)
12/5-2004=200+800(12/4-2004+12/5-2004)
Er det sådan du mener?
Avatar billede supertekst Ekspert
13. november 2004 - 12:26 #7
Hej

I hvilen context skal dette foregå - skal du have en ny tabel med opsummeret saldo pr. dato?

Hvorfra vil du aktiverer funktionen? Fra en formular eller...?


MVH
Avatar billede jesperdyhr Praktikant
13. november 2004 - 12:30 #8
Ja - ja. Det er nok ikke det mest læsevenlige dansk jeg har præsteret.
Planen er, at vi for hver dato skal have en sum af alle posteringer der ligger til og med denne dato.
Altså alle posteringer før den 1/10-2004 skal summeres og skrives ud for posterngen den 1/10-2004.
Hvis næste postering findes den 12/10-2004 kommer der en ny sum 12/10-2004 der så indeholder alle tidligere posteringer samt den, der kommer den 12/10-2004.

På den måde er der en saldo ud for hver post.
Hjalp det??

Dato            Tekst            Beløb     Saldo
01-09-2004    Abonnement    238,00    238,00
12-09-2004    Betaling    -238,00    0,00
01-11-2004    Abonnement    238,00    238,00
05-11-2004    Varekøb     542,00    780,00
09-11-2004    Varekøb            124,00    904,00
10-11-2004    Betaling    -238,00  666,00
Avatar billede jesperdyhr Praktikant
13. november 2004 - 12:32 #9
Jeg skal faktisk bruge saldoen i en rapport, så beregningen kunne godt foregå i selve rapporten, men hvis den også kunne ligge i forespørgslen ville det da være ok!
Avatar billede michael_stim Ekspert
13. november 2004 - 12:34 #10
Er det til en hjemmeside? For så er det bare at lägge det i en loop.
SELECT *, SUM("saldo") AS saldo FROM tabel WHERE bruger=? ORDER BY DATO ASC /Stigende
Avatar billede jesperdyhr Praktikant
13. november 2004 - 12:38 #11
Nej, det er til et kontokort på kunder.
Den skal altså skrives ud, og også gerne kunne bruges i en formular.

I dag er der kun en rapport med posteringerne og til sidst en sum af posteringerne, så man kan se kundens saldo egfter den sidste postering.
Så den skal bruges i en rapport og i en formular.
Avatar billede terry Ekspert
13. november 2004 - 14:23 #12
You need to GROUP BY Kunde and Dato

SELECT DISTINCTROW KUNDE.Kundenummer, Sum(KUNDE.Saldo) AS [SaldoMdr]
FROM KUNDE
GROUP BY KUNDE.Kundenummer, KUNDE.Dato;
Avatar billede jesperdyhr Praktikant
13. november 2004 - 14:52 #13
Jeg kan altså ikke få det til at virke.

Måske skulle jeg sige igen at jeg ikke har feltet saldo. Det er selve saldo-feltet jeg skal finde.
Jeg har kun en række posteringer - typisk en pr. dato, og for hver ny postering, skal jeg beregne en saldo, der er en sum af alle tidligere posteringer (Inklusive den aktuelle)
Avatar billede terry Ekspert
13. november 2004 - 14:56 #14
There must be a field whcih you sum to get the saldo. Cahnge saldo to the name of that field

The SQL above is just and example, you need to alter the table and field names so that they are the same as yours.
Avatar billede terry Ekspert
13. november 2004 - 14:58 #15
if you want a running saldo for each date the look at this link

http://www.eksperten.dk/spm/559930
Avatar billede terry Ekspert
13. november 2004 - 14:58 #16
Avatar billede supertekst Ekspert
13. november 2004 - 15:13 #17
Et alternativ:

Har oprettet en formular med 2 ubundne listebokse. Ved opstart af formularen vises alle kontokortoplysninger i den første liste og i den anden liste den "løbende saldo".

De 2 lister er oprettet som activeX-komponenter.

Det skal nævnes - at de 2 lister på sigt skal/bør samles i een.

Samtidigt skrives der i en ny tabel, der ligner kontokortet - men tillige indeholder et saldofelt. D.v.s. at nu kan der genereres en rapport på basis af denne.

MVH
Avatar billede jesperdyhr Praktikant
13. november 2004 - 15:35 #18
Jeg forstår simpelthen ikke Dsum() sætningen.
Min tabel hedder: Account
Feltene hedder: Customerno, Date, amount

og jeg skal bruge feltet Balance

Gider du skrive sætningen til en opdateringsforespørgsel, der laver saldo i feltet balance??
Avatar billede jesperdyhr Praktikant
13. november 2004 - 15:42 #19
Jeg kan da sende databsaen til dig...
Avatar billede terry Ekspert
13. november 2004 - 15:57 #20
eksperten@NOSPAMsanthell.dk
Remove NOSPAM

I am off out around 17:00 if I have time then I will take a look today, otherwise it will first be tomorrow
Avatar billede supertekst Ekspert
13. november 2004 - 16:00 #21
Resultat af tidligere nævnte rapport:

    SaldoKort:
    id    dato            Tekst              Beløb      Saldo
    41    01-09-04    Abonnement    238,00    238,00
    42    12-09-04    Betaling    -238,00      0,00
    43    01-11-04    Abonnement    238,00    238,00
    44    05-11-04    Varekøb            542,00    780,00
    45    09-11-04    Varekøb            124,00    904,00
    46    10-11-04    Betaling    -238,00    666,00
Avatar billede jesperdyhr Praktikant
13. november 2004 - 16:11 #22
Supertekst: Du har jo også fat i sagerne. Hvad er det du har lavet?
Avatar billede jesperdyhr Praktikant
13. november 2004 - 16:12 #23
Terry: Jeg har fået dsum() til at virke. Hvorfor skal "[Amount]" stå i " " ??
Avatar billede supertekst Ekspert
13. november 2004 - 16:17 #24
Send en mail til pb@skivehs.dk - så kan du få en kopi af databasen, hvis du er interesseret.

MVH
Avatar billede terry Ekspert
13. november 2004 - 16:36 #25
Hvorfor skal "[Amount]"
Dsum is used to sum the [Amount] field for all records up to [STAMP] for a specific Customerno

It looks as though its what you wanted, isnt it?
Avatar billede terry Ekspert
15. november 2004 - 12:01 #26
status?
Avatar billede terry Ekspert
22. november 2004 - 14:52 #27
are we finished here Jesper?
Avatar billede jesperdyhr Praktikant
22. november 2004 - 15:00 #28
Hello Terry.

I thought I did accept your answer earlier
But here it is...
Avatar billede terry Ekspert
22. november 2004 - 19:12 #29
Thanks Jesper!
There seems to be a bit of a problem when accepting answers, its important to select the name in the list before accepting otherwise it doesnt get accepted. But its there now, once again thanks

mvh
terry
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