09. oktober 2002 - 10:24Der er
9 kommentarer og 1 løsning
Mange Count, Group by og Summer. Hvordan gjør løser jeg dette?
Jeg har et problem jeg ikke klarer å få løst! Har nå prøvd i to dager, men står helt fast. Jeg skal ha mange Count fra en tabell med en Group by og Summering i siste rad/kolonne.
Kolonnene i tabellen er:
K_senter ServiceID
Jeg vil telle antall forskjellige ServiceID og bruke Group By på K_Senter.
Jeg kan telle pr. i dag på 16 forskjellige ServiceID. Eksempel på ServiceID er:
810Samtale eposten Brev TAM
Jeg ønsker resultatet skrevet ut slik:
K_senter 810Samtale eposten Brev TAM Totalt Sarpborg 4300 6 15 20 (Summer alle på Sarpsborg) Larvik 160 2 20 1500 (Summer alle på Larvik) Haug 600 4 56 13 (Summer alle på Haug) Kr.sand 890 6 1 80 (Summer alle på Kr.sand) ----------------------------------------------------------------------------------------------------------------- SUM Sum 810 Sum epost Sum brev Sum Tam Sum Totalt
Er det noen som vil hjelpe meg med dette? Det er en gangske stor database og hente ut data fra (ca. 900.000 records), slik at det hadde vært fint med et ”raskt” script til dette.
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Nå, jeg tror jeg har fattet det. Første del af spørgsmålet, at summere over k_senter kan klares med denne SELECT Tabel1.k_senter, Tabel1.serviceid, Sum(1) AS Udtryk1 FROM Tabel1 GROUP BY Tabel1.k_senter, Tabel1.serviceid; Der får du en tabel med tre kolonner, hvor første kolonne er k_senter, anden er serviceid, og tredie kolonne er summen af poster med de to værdier. Når du skriver det, skal du have noget i retning af <tabel> <tr> <td><%=rs("k_senter")%></td> <td><%if rs("serviceid") = 0 then response.write rs("udtryk1") rs.movenext%></td> <td><%if rs("serviceid") = 1 then response.write rs("udtryk1") rs.movenext%></td> <td><%if rs("serviceid") = 2 then response.write rs("udtryk1") rs.movenext%></td> osv så skal rs("serviceid") = 0 svare til 810samtale, osv
Den sidste linie skal du så lave med et andet udtræk. SELECT Tabel1.serviceid, Sum(1) AS Udtryk1 FROM Tabel1 GROUP BY Tabel1.serviceid; og skrives på samme måde som ovenfor, pånær <td><%=rs("k_senter")%></td> , der skal vel stå <td>sum</td>
Hov, der mangler en linie i begge to, hvor du skal have summen af al trafikken: <%sum = 0 do while not rs.eof <tabel> <tr> <td><%=rs("k_senter")%></td> <td><%if rs("serviceid") = 0 then response.write rs("udtryk1") sum = sum + rs("udtryk1") rs.movenext end if%></td> <td><%if rs("serviceid") = 1 then response.write rs("udtryk1") sum = sum + rs("udtryk1") rs.movenext end if%></td> <td><%if rs("serviceid") = 2 then response.write rs("udtryk1") sum = sum + rs("udtryk1") rs.movenext end if%></td> ... <td><% response.write sum sum = 0%></td> <%rs.movenext loop%> Der skal nok nogle betingelser ind for at sikre at du ikke rammer eof inde midt i løkken
Jeg tror det nemmeste er at skifte rs.movenext ud med if not rs.eof then rs.movenext Det skal så stå en del steder, men jeg kan ikke lige se hvordan man kan løse det nemmere eller pænere.
Synes godt om
Ny brugerNybegynder
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.