Avatar billede ms_2004 Nybegynder
15. juni 2005 - 13:00 Der er 13 kommentarer og
4 løsninger

Sum af felt fra anden tabel

Hej eksperter!

Jeg har TabelX med et felt "Samlet beløb" og TabelY der indeholder feltet "Beløb". Tabellerne er kædet sammen med en en-til-mange relation.

Nu er det sådan, at jeg gerne vil have at "Samlet beløb" automatisk bliver beregnet som summen de værdier der ligger i feltet Beløb i TabelY (som hører til relationen). Det er illustreret nedenfor - hvordan gør man det smart?


TabelX:
-------------------
ID          Samlet Beløb (auto sum)
1              500
2              333

TabelY:
-------------------
ID_tblX        Beløb
1              200
1              300
2              333

Mvh

MS_2004
Avatar billede dr_chaos Nybegynder
15. juni 2005 - 13:04 #1
SELECT SUM(Beløb) AS SAMLET_BELØB FROM TabelY WHERE ID_tblX = 1
Avatar billede ms_2004 Nybegynder
15. juni 2005 - 13:09 #2
Men hvor indsætter jeg den SQL sætning? Er der en egenskab på feltet "Samlet beløb", hvor jeg kan sætte den?
Avatar billede dr_chaos Nybegynder
15. juni 2005 - 13:24 #3
hvad skal du bruge samlet beløb til ?
Avatar billede ms_2004 Nybegynder
15. juni 2005 - 13:30 #4
TabelY indeholder en række transaktionerne, hvor der på hver transaktion er et beløb (ligger i "Beløb"). Transaktionerne er tilknyttet en sag - (TabelX) - og til brug for rapporter over sager m.m., vil det være smart, hvis det summen transaktionsbeløbene lå i feltet "samlet beløb" i TabelX.
Avatar billede dr_chaos Nybegynder
15. juni 2005 - 13:37 #5
Det at du har et samlet beløb skaber redundant data.
Du kan hente det samlede beløb ud med den sql sætning jeg skrev øverst.
Ellers skal du gøre det at når du indsætter/opdaterer en post i TabelY så opdaterer du Samlet beløb feltet i TabelX.

UPDATE TabelX SET Samlet Beløb = (SELECT SUM(Beløb) AS SAMLET_BELØB FROM TabelY WHERE ID_tblX = 1) WHERE ID = 1
Avatar billede terry Ekspert
15. juni 2005 - 13:41 #6
You have NO NEED for tableX when the information is already avialable in tabley!!!


SELECT tabely.ID, Sum(tabely.Beløb) AS SumOfBeløb
FROM tabely
GROUP BY tabely.ID;
Avatar billede terry Ekspert
15. juni 2005 - 13:44 #7
make a new query using the table tabely choose the fields you want to see in th equery. Press the Totals icon on the menu. Then for the Beløb field change the Total field to Sum instead of Group By
Avatar billede ms_2004 Nybegynder
15. juni 2005 - 13:50 #8
Thanks for the solutions, I had not thought about the "redundant" issue. But I should probably have written that the "Samlet Beløb" also needs to be shown on a form - is it then possible to apply your solutions?
Avatar billede dr_chaos Nybegynder
15. juni 2005 - 14:03 #9
i den sql sætning du bruger til at hente data ud med tilføjer en sum og udskriver den i et felt i formen.
Det nemmeste er hvis du viser den sql sætning du bruger til at hente form informationerne med
Avatar billede ms_2004 Nybegynder
15. juni 2005 - 14:04 #10
Now I know - I will just create a view, with the SQL above, and base the form on that view.
Avatar billede dr_chaos Nybegynder
15. juni 2005 - 14:05 #11
Den kan du godt gøre
Avatar billede ms_2004 Nybegynder
15. juni 2005 - 14:07 #12
Har du fået dine point dr chaos? - så umiddelbart ud som om jeg kun kunne give terry og mig selv point!.?
Avatar billede dr_chaos Nybegynder
15. juni 2005 - 14:13 #13
jeg havde ikke smidt noget svar så jeg kunne ikke få nogen points.
Jeg plejer kun at smide svar når jeg bliver bedt om det.
Vil du give mig points ?
Avatar billede ms_2004 Nybegynder
15. juni 2005 - 14:25 #14
Nå - derfor... Ja det ville jeg da gerne, men tror desværre at de alle sammen er uddelt. Det må blive næste gang :)
Avatar billede dr_chaos Nybegynder
15. juni 2005 - 14:32 #15
jeps
Avatar billede terry Ekspert
15. juni 2005 - 14:50 #16
you can get some points here dr_chaos :o)

http://www.eksperten.dk/spm/626171
Avatar billede terry Ekspert
15. juni 2005 - 14:50 #17
and thanks ms_2004
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

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