Avatar billede moejensen Nybegynder
10. juni 2003 - 19:37 Der er 21 kommentarer og
1 løsning

sum() i Access

Hvad er der galt her:

SELECT Sum(Total) As ColorTotal, ColorName FROM Colors
Avatar billede eagleeye Praktikant
10. juni 2003 - 19:42 #1
Det kommer an på hvad du ønsker, men du kan ikke hendte andet ud en summen untagen end hvis du har en GRUOP BY ColorName:

SELECT Sum(Total) As ColorTotal, ColorName FROM Colors GRUOP BY ColorName
Avatar billede terry Ekspert
10. juni 2003 - 19:42 #2
sum is an aggregate function try grouping by ColorName
Avatar billede terry Ekspert
10. juni 2003 - 19:43 #3
too slow I see :o) BUT there is a little error there :o)

SELECT Sum(Total) As ColorTotal, ColorName FROM Colors GROUP BY ColorName
Avatar billede terry Ekspert
10. juni 2003 - 19:44 #4
Or just
SELECT Sum(Total) As ColorTotal FROM Colors
Avatar billede eagleeye Praktikant
10. juni 2003 - 19:46 #5
;) UO -> OU
Avatar billede mugs Novice
10. juni 2003 - 19:47 #6
SELECT colour.colourname, Count(colour.colourname) AS AntalOfcolourname
FROM colour
GROUP BY colour.colourname;
Avatar billede terry Ekspert
10. juni 2003 - 19:49 #7
Hi mugs>Count and sum dont produce the same result :o)
Avatar billede mugs Novice
10. juni 2003 - 19:53 #8
Hi terry > No I can see that I have some difficulties. From now on I won't have anything to do with SQL. That's just like the Chinese language, so I will go in My garden again and work in My Greenhouse. I know a little about that :o)
Avatar billede terry Ekspert
10. juni 2003 - 19:55 #9
Your doing great mugs. SQL isnt my hot spot either, what would I do without the query builder :o)
Avatar billede moejensen Nybegynder
10. juni 2003 - 20:05 #10
hvad gør group by??

jeg kan ikke få det til at virke. Er det meget mere krævende for serveren at gøre således:

    rs.Open "SELECT ColorName, Total FROM Colors", , , adCmdTable
    ColorTotal = rs("Total")
    Do Until rs.eof
        ColorTotal = ColorTotal + rs("Total")
        rs.movenext
    loop
    rs.movefirst
Avatar billede terry Ekspert
10. juni 2003 - 20:07 #11
example

Total - ColorName
2        Red
1        Red
4        Black

SELECT Sum(Total) As ColorTotal, ColorName FROM Colors GROUP BY ColorName

would give

Total - ColorName
3        Red
4        Black

It Sums the Total up for each color
Avatar billede eagleeye Praktikant
10. juni 2003 - 20:08 #12
Den grupper så den tæller recordset så alle med samme navn kommer ud sammen og man kan summere en kolonne for alle hvor de har ens navne.

Men hvis du tælle det hele sammen så det bare:

"SELECT sum(total) as sumTotal FROM colors"
Avatar billede terry Ekspert
10. juni 2003 - 20:08 #13
actually it would give
ColorTotal - ColorName :o)
Avatar billede eagleeye Praktikant
10. juni 2003 - 20:09 #14
Ja/nej det belaster serveren. Jo flere records du har jo mreer belaster det.

og så får du den føste record talt med 2 gange fordi du skriver sådan her:
ColorTotal = rs("Total")

Det skal være:
ColorTotal = 0
Avatar billede terry Ekspert
10. juni 2003 - 20:10 #15
moejensen>Your comment 10/06-2003 20:05:20 This IS NOT the same question you asked originally.
Avatar billede moejensen Nybegynder
10. juni 2003 - 20:31 #16
--> terry. no, its not the same

--> problemet er at jeg både skal bruge summen af dem alle, men også hver enkelt record.

så jeg skal bruge Total, ColorName og en sum af alle total
Avatar billede terry Ekspert
10. juni 2003 - 20:35 #17
and all that for 5 points :o)
Avatar billede terry Ekspert
10. juni 2003 - 20:39 #18
SELECT tbl1.ColorName , (SELECT Sum(tbl1.Total)
FROM tbl1;
) AS SumTot
FROM tbl1;
Avatar billede eagleeye Praktikant
10. juni 2003 - 20:39 #19
Så skal du enten lave det i to SQL sætninger som eller som du har vist i kommentar 10/06-2003 20:05:20

    rs.Open "SELECT sum(Total) FROM Colors", , , adCmdTable
    sumTotal = rs(0)
    rs.Close
    rs.Open "SELECT ColorName, Total FROM Colors", , , adCmdTable
    Do Until rs.eof
        'Hvad du nu skal med det her..
        rs.movenext
    loop
Avatar billede terry Ekspert
10. juni 2003 - 20:39 #20
replace tbl1 with Colors :o)

Now I'm off to see Jack is Back :o)
Avatar billede terry Ekspert
10. juni 2003 - 20:40 #21
NOTE: You will get all ColorName and the total in ALL records, thats about as close as you can get
Avatar billede moejensen Nybegynder
10. juni 2003 - 21:25 #22
okay, takker :-)
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