select sum(topicCount) as totalCount
from ogrish
eller vad din tabell nu heter
------------------
essentitia preter non sans multiplicandum
13 svar · 189 visningar · startad av Rossifumi
Hur ser en SQL-sats ut som summerar ett fält i en accessdatabas?
Databasen har ett fält som heter topicCount. Och jag vill lägga ihop alla topicCount så att jag kan få det totala antalet inlägg.
Någon som fattar?
------------------
"I have to return some video tapes" - Patrick Bateman, American Psycho
select sum(topicCount) as totalCount
from ogrish
eller vad din tabell nu heter
------------------
essentitia preter non sans multiplicandum
Kanske är lite för avancerat...
Men jag gör som ni kanske förstår ett forum. Just nu finns det 7 st forum. Kan jag då göra en lite rutin eller något som räknar igenom det totala antalet inlägg i respektive forum?
Så här ungefär:
Forum1 22 inlägg
Forum2 122 inlägg
Forum3 222 inlägg
Eller måste jag göra ovanstående sum 7 ggr?
------------------
"I have to return some video tapes" - Patrick Bateman, American Psycho
select count(*) as antal,
forumnamn
from forum
group by forumnamn
Tillägg
du kan använda vilken aggregatfunktion som helst, dvs max,min,sum,count,avg
------------------
essentitia preter non sans multiplicandum
[Redigerat av LarsG den 07 mar 2001]
Nu vet inte jag ifall jag inte fattar din kod eller ifall du missuppfattade mig. Jag vill alltså ha 7st olika värden. Det gör inte din kod eller?
------------------
"I have to return some video tapes" - Patrick Bateman, American Psycho
Jo, det blir ett värde för varje unikt forumnamn.
------------------
essentitia preter non sans multiplicandum
OK, men trög som jag är så fattar jag inte så mycket.
Hur använder jag din kod?
Min tabell ser ut som följer:
topicID | räknare >> Säger sig självt
topicCounter | tal >> antalet svar på detta topic
forumID | tal >> Visar till vilket forum ämnet hör till
Hur skriver jag då för att få detta resultat:
Det fanns 10 inlägg i forumet med id = 1
Det fanns 12 inlägg i forumet med id = 2
osv...
Tack på förhand!
------------------
"I have to return some video tapes" - Patrick Bateman, American Psycho
' connect etc
SQLstr = "select sum(topicCounter) as antal, forumID from topics group by forumID"
set rs = connection.execute(SQLstr)
while not rs.eof
response.write "Det finns " & rs("antal") & " inlägg i forumet med id = " & rs("forumID")
rs.movenext
wend
Jag vet fortfarande inte vad din tabell heter :h .
------------------
essentitia preter non sans multiplicandum
Jag får tacka för hjälpen, men jag är så trög :)
Kolla in denna textfilen så får du hela koden. Hoppas att det kan hjälpa dig.
Tack än en gång för hjälpen :)
------------------
"I have to return some video tapes" - Patrick Bateman, American Psycho
Ok, jag tittade på din kod.
Det du kan göra är att lägga till det här på samma ställe som du räknar ut totala antalet.
SQLstr = "select sum(topicCounter) as antal, forumID from topicTable group by forumID order by forumID"
set rs = connection.execute(SQLstr)
fmCnt = rs.getrows()
Arrayen fmCnt innehåller nu alla poster från recordsetet. För att komma åt antalet inlägg i forumet med ID 1 så skriver man
fmCnt(0,0)
Har du inte funderat på att lägga ner forumbeskrivningarna i databasen och hämta upp dem i en loop? I så fall kan man använda den förra varianten som jag skrev.
Om du vill läsa mer om getrows så finns det här
http://msdn.microsoft.com/library/default.asp?URL=/library/psdk/dasdk/mdam9rg3.htm
Red: Nu vet jag ju vad din tabell heter.
------------------
essentitia preter non sans multiplicandum
[Redigerat av LarsG den 07 mar 2001]
[Redigerat av LarsG den 07 mar 2001]
Den klagar på rad 9 (fet)
Feltyp:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E10)
[Microsoft][Drivrutin för ODBC Microsoft Access] För få parametrar angavs. 1 förväntades.
/forum/default.asp, line 9
<%
Dim fmCnt, antal
mySQL = "select sum(topicCounter) as antal, forumID from topicTable group by forumID order by forumID"
[b]set objRS = objConn.Execute(mySQL)[/b]
fmCnt = objRS.GetRows()
%>
Kanske är smidigare att loopa ut all info istället :) Men då kommer jag till ett annat problem.
Som du ser i min kod så måste jag isåfall loopa ut 3 forum sedan lägga in en bild sedan loopa ut 3 forum till och sedan en bild och sist men inte minst loopa ut 1 forum... Pheew, är det jätte jobbigt eller? Kanske bara går att använda mod eller något?
------------------
"I have to return some video tapes" - Patrick Bateman, American Psycho
Okej access klarar tydligen inte av att man använder namn i order by. Försök med denna select istället.
mySQL = "select sum(topicCounter) as antal, forumID from topicTable group by forumID order by 2"
------------------
essentitia preter non sans multiplicandum
[Redigerat av LarsG den 08 mar 2001]
Samma felmeddelande, men tar jag bort ditt "group by forumID" så funkar det... Skumt.
Skall testa lite själv med att loopa ut allt istället, och då kan jag ju ha en vanlig sum inne i loopen :)
Tack så mycket för hjälpen :)
------------------
"I have to return some video tapes" - Patrick Bateman, American Psycho