jimpaMedlem sedan jan. 2001361 inlägg Hej
Jag har en tabell som ser ut ungefär
ID : PublisherID : visad : Klick
1------- 2------- 50-----10
2------- 2------- 20------5
3------- 1------- 2 ------0
4------- 3------- 21------6
5------- 3------- 30------8
Problemet är hur själva loopen ska se ut för att räkna ihop värdet av klick samt visningar där 'PublisherID' är samma! Det svåra blir ju sen att jag vill bara att resp. PublisherID ska skrivas ut en gång.
Ifrån ex. ovan skulle jag vilja att resultatet skulle bli:
PublisherID (2) visningar 70 , klick 15
PublisherID (1) visningar 2 , klick 0
PublisherID (3) visningar 51 , klick 14
Någon som kan hjälpa mig lite på traven :OO
LarsGMedlem sedan dec. 200012 464 inlägg select publisherID,
sum(visad) as visningar,
sum(klick) as klickningar
from t
group by publisherID
Flyttas från ASP
jimpaMedlem sedan jan. 2001361 inlägg hmm.
Mitt ex. tidigare var en förenklad historia, provade att summera direkt i SQL-satsen men får det inte att stämma riktigt.
SQL'n ser ut så här:
SQL = "Select LogID, lBannerID, lAnnouncerID, lTypeID, lZoneID, lClicks, lHits, SUM(lHits) as sumHits, SUM(lClicks) as sumClicks FROM bLog"
If Request("bAnnouncerID") <> "" Then
strWhere = " WHERE lAnnouncerID =" & Request("bAnnouncerID") & " "
else
strWhere = ""
End If
If Request("bZoneID") <> "" Then
if strWhere <> "" then
strWhere = strWhere & "AND lZoneID =" & Request("bZoneID") & " "
else
strWhere = " WHERE lZoneID =" & Request("bZoneID") & " "
end if
End If
If Request("bTypeID") <> "" Then
if strWhere <> "" then
strWhere = strWhere & "AND lTypeID =" & Request("bTypeID") & " "
else
strWhere = " WHERE lTypeID =" & Request("bTypeID") & " "
end if
End If
If Request("Qdte") <> "" Then
FromDte = Request("Qdte")
if FromDte = "toDay" then
if strWhere <> "" then
strWhere = strWhere & " AND lDte =#" & Date() & "# "
else
strWhere = strWhere & " WHERE lDte =#" & Date() & "# "
end if
else
strWhere = strWhere
end if
End If
strOrder = " GROUP BY LogID, lBannerID, lAnnouncerID, lTypeID, lZoneID, lClicks, lHits ORDER BY lAnnouncerID"
SQL = SQL & strWhere & strOrder
och loopen
Set RS = Conn.Execute(SQL)
If NOT RS.EOF Then
Do until RS.EOF
Response.Write "AnnonsID: " & RS("lAnnouncerID") & " lHits: " & RS("lHits") & " lClicks: " & RS("lClicks") & " Summa Hits: " & RS("sumHits") & " Summa Klick: " & RS("sumClicks") & "<br>"
RS.MoveNext
Loop
End If
och resultatet
AnnonsID: 11 lHits: 3 lClicks: 0 Summa Hits: 3 Summa Klick: 0
AnnonsID: 14 lHits: 2 lClicks: 0 Summa Hits: 2 Summa Klick: 0
AnnonsID: 14 lHits: 6 lClicks: 0 Summa Hits: 6 Summa Klick: 0
AnnonsID: 16 lHits: 7 lClicks: 0 Summa Hits: 7 Summa Klick: 0
AnnonsID: 16 lHits: 2 lClicks: 0 Summa Hits: 2 Summa Klick: 0
Jag vill att resultatet ska bli
AnnonsID: 11 Summa Hits: 3 Summa Klick: 0
AnnonsID: 14 Summa Hits: 8 Summa Klick: 0
AnnonsID: 16 Summa Hits: 9 Summa Klick: 0
Jag vill alltså att summan för hits och klicks skall skrivas ut en gång för varje AnnonsID
Någon som har nåt förslag?
LarsGMedlem sedan dec. 200012 464 inlägg Du får välja, om du vill ha det resultatet så kan du inte ha med dom andra kolumnerna i select-listan
jimpaMedlem sedan jan. 2001361 inlägg Ok jag misstänkte det..
Men hur kan man göra för att få ut det resultatatet jag eftersträvar
Måste ju gå på nåt annat sätt..nån idé.. någon
jimpaMedlem sedan jan. 2001361 inlägg LarsG: Kanske borde denna tråd flyttas tillbaka till ASP?
LarsGMedlem sedan dec. 200012 464 inlägg Jo, kanske det. Om du vill ha alla värden och även summera så får du sköta summeringen själv.
Hämta värdena sorterade på annonsID och håll reda på när du får ett nytt värde för annonsID.
jimpaMedlem sedan jan. 2001361 inlägg hmm
Om jag nu vill att resutatet ska skrivas ut så här
AnnonsID:11 Summa Hits: 3 Summa Klick: 0
- BannerID 1 lHits: 3 lClicks: 0
AnnonsID: 14 Summa Hits: 8 Summa Klick: 0
- BannerID 40 lHits: 2 lClicks: 0
- BannerID 21 lHits: 6 lClicks: 0
AnnonsID: 16 Summa Hits: 9 Summa Klick: 0
- BannerID 12 lHits: 7 lClicks: 0
- BannerID 42 lHits: 2 lClicks: 0
Alltså Skriva ut summan först som ex. ovan :l
Tacksam för alla förslag och idéer!!
jimpaMedlem sedan jan. 2001361 inlägg Hallå....
Ingen som vet :o
LarsGMedlem sedan dec. 200012 464 inlägg dim a,q,rs,connect,i,pid, sumhit,sumklick
set connect = server.createobject("adodb.connection")
connect.open "dsn"
q = "select annonsid,bannerid,hits,klick from blog order by annonsid "
set rs = connect.execute(q)
if not rs.eof then
a = rs.getrows()
pid = 0
for i = 0 to ubound(a,2)
if pid <> clng(a(0,i)) then
pid = clng(a(0,i))
sumhit = 0
sumklick = 0
for j = i to ubound(a,2)
if pid <> clng(a(0,j)) then exit for
sumhit = sumhit + clng(a(2,j))
sumklick = sumklick + clng(a(3,j))
next
response.write "AnnonsID:" & pid & " Summa Hits: " & sumhit & " Summa klick: " & sumklick & "<br>"
end if
response.write " - BannerID " & a(1,i) & " lHits: " & a(2,i) & " lClicks: " & a(3,i) & "<br>"
next
else
response.write "Tomt"
end if
rs.close
set rs = nothing
connect.close
set connect = nothing
jimpaMedlem sedan jan. 2001361 inlägg Tack LarsG! :D
Ska genast prova!