Avatar billede hansdam Nybegynder
04. januar 2004 - 17:55 Der er 16 kommentarer og
1 løsning

total subtotal

Hej alle sammen

Jeg er ved at lavet en lille script der kan hjælpe mig lidt med at tælle nogle vare...

Jeg kan bare ikke finde ud af hvordan jeg skal lave en "total subtotal"
I vil forstå det bedre hvis i går ind på denne adresse: http://www.hdhp.dk/EasyCounting.asp?mode=Statestik&kategori='Knapper'
Som er et eks. af mit lille "program"

Koden til denne side er:
'------------------------------------------------------
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("*-----*.mdb")

strkater = replace(request("kategori"),"'","")

Set rs = Conn.Execute("Select Pris, Sum(Antal) From vare where kategori = '" & strkater & "' Group By Pris order by pris desc")

response.write "<table width=""700"" border=""1"">"
response.write "<tr><td align=""center"" width=""30%"">"
response.write "Pris</td>"
response.write "<td width=""30%"" align=""center"">"
response.write "Antal Vare</td>"
response.write "<td width=""40%"" align=""center"">"
response.write "Subtotal</td></tr>"

While Not rs.EOF

strPrisen = rs(0)
strAntal = rs(1)
strPrisen2 = replace(strPrisen,".",",")

response.write "<tr><td align=""center"" width=""30%"">"
response.write strPrisen2 & "</td>"
response.write "<td width=""30%"" align=""center"">"
response.write strAntal & "</td>"
response.write "<td width=""40%"" align=""right"">"
response.write (strAntal * strPrisen)/100 & " kr.</td></tr>"
 
  rs.MoveNext
Wend

set rs2 = Conn.Execute("Select sum(antal) from vare")

strSumAntal = rs2(0)

rs2.close
set rs2 = nothing

response.write "<tr><td align=""center"" width=""30%"">"
response.write "&nbsp;</td>"
response.write "<td width=""30%"" align=""center"">"
response.write strSumAntal & "</td>"
response.write "<td width=""40%"" align=""right"">"
response.write "Her skal alle subtotaler der er lagt sammen, stå</td></tr>"
response.write "</table>"

conn.close
set conn = nothing
'-------------------------------------------------------
Hvordan laver jeg en total subtotal? Altså en funktion der lægger alle subtotaler sammen...
Avatar billede thesurfer Nybegynder
04. januar 2004 - 18:04 #1
hvad med?:

Før loopen:
dim tst 'totalsubtotal
tst = 0

response.write (strAntal * strPrisen)/100 & " kr.</td></tr>"
tst = CInt(tst) + cint(((strAntal * strPrisen)/100))
  rs.MoveNext

Og til sidst:
response.write "Total subtotal: " & tst

Eller noget i den stil..
Avatar billede trer Nybegynder
04. januar 2004 - 18:07 #2
Køre du en MS SQL Server - så Prøv at ændre din sql til en af disse to:

Select Pris, Sum(Antal) From vare where kategori = '" & strkater & "' Group By Pris with rollup

Select Pris, Sum(Antal) From vare where kategori = '" & strkater & "' Group By Pris with cube

Kan p.t. ikke huske om en Order by skal sættes før eller efter rollup og cube udtrykkene.
Avatar billede hansdam Nybegynder
04. januar 2004 - 18:08 #3
Jeg kører med access DB
Avatar billede thesurfer Nybegynder
04. januar 2004 - 18:11 #4
hansdam: prøv mit indlæg..
Avatar billede hansdam Nybegynder
04. januar 2004 - 18:12 #5
Jeg er lige ved at afprøve det - og regne efter... 2 sek - det ser godt ud ind til videre...
Avatar billede thesurfer Nybegynder
04. januar 2004 - 18:16 #6
Det kan godt være at man skal bruge CLng i stedet for CInt..
Se her: http://www.w3schools.com/vbscript/vbscript_ref_functions.asp#conversion
Avatar billede hansdam Nybegynder
04. januar 2004 - 18:21 #7
Som du kan se her: http://www.hdhp.dk/EasyCounting.asp?mode=Statestik&kategori='Knapper'
giver det samlede resultat 28067, men når jeg regner du ud manuelt giver det  28065,85 - (ret mig hvis jeg tager fejl...)
Hvor ligger fejlen?
Avatar billede thesurfer Nybegynder
04. januar 2004 - 18:22 #8
Har du brugt CInt? Jeg mener at den runder af.. prøv CLng i stedet..
Avatar billede thesurfer Nybegynder
04. januar 2004 - 18:24 #9
Ahh.. det skal være CDbl :)
Avatar billede hansdam Nybegynder
04. januar 2004 - 18:25 #10
fedt nu virker det perfekt :-D mange tak
Avatar billede hansdam Nybegynder
04. januar 2004 - 18:26 #11
FUCK!!! Jeg kom til at acceptere den forkerte!
Avatar billede hansdam Nybegynder
04. januar 2004 - 18:27 #12
thesurfer Jeg giver dig lige nogle points om et par dage.. har ikke lige nogle lige nu, Okay?
Avatar billede thesurfer Nybegynder
04. januar 2004 - 18:27 #13
yep :)
trer> Opret lige et spm med titlen "Points til theSurfer" på 30 points, i denne kategori, med et link til dette spm..
Avatar billede thesurfer Nybegynder
04. januar 2004 - 18:27 #14
hansdam> Nej, jeg får dem af trer.
Avatar billede hansdam Nybegynder
04. januar 2004 - 18:28 #15
okay
Avatar billede trer Nybegynder
04. januar 2004 - 21:19 #16
Er sket :-)
Avatar billede thesurfer Nybegynder
04. januar 2004 - 21:30 #17
Hvis der er nogen der er interesseret, skete det her http://www.eksperten.dk/spm/447026 :)
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