webForumDet fria alternativet

Fel i SUM() i sqlfråga

Databaser & SQL

0 svar · 300 visningar · startad av MickeA.com

Medlem sedan feb. 20034 441 inlägg
Frågan#1

Tjena
Jobbar med en sida i pokerbranschen.
Ska nu skriva ut en typ av utbetalningslista där en medlems värvade spelare ska summeras (alltså deras utbetalningar...).

Nu har det kört ihop sig lite, för jag vill gruppera de poster där perioderna är de samma.
Just nu visas det samma period (fast med olika spelare) under varann, jag vill alltså summera alla värvade spelares totala utbetalningar där perioden + sajt är densamma.

Koden jag använder ser ut såhär, den är _lite_ rörigt, med hoppas ni hänger med:

Set rsSites = conn.Execute (	"SELECT DISTINCT " &_
				"sSajt " &_
				"FROM regsites " &_
				"WHERE cID IN " &_
				"(" &_
				"SELECT id FROM customers WHERE nReferer = " & nCustId &_
				")")
	If Not rsSites.EOF Then
		Response.Write(	"<tr>" & VbCrLf &_
				"<td colspan=""5"" style=""height: 25px;""><img src=""gfx/cleardot.gif"" alt=""marg""></td>" & VbCrLf &_
				"</tr>" & VbCrLf &_
				"<tr>" & VbCrLf &_
				"<td class=""w_250 format_cell form_topic five_px_right""><b>" & ml ("field_site") & "&nbsp;</b></td>" & VbCrLf &_
				"<td class=""w_150 format_cell form_topic five_px_right""><b>" & ml ("field_rake") & "&nbsp;</b></td>" & VbCrLf &_
				"<td class=""w_250 format_cell form_topic five_px_right""><b>" & ml ("field_bonus") & "&nbsp;</b></td>" & VbCrLf &_
				"<td class=""w_100 format_cell form_topic""><b>" & ml ("field_rakeback") & "&nbsp;</b></td>" & VbCrLf &_
				"<td class=""w_100 format_cell form_topic""><b>" & ml ("show_stats_currency") & "&nbsp;</b></td>" & VbCrLf &_
				"</tr>" & VbCrLf)

		While not rsSites.EOF
%>
			<tr class="row_over h_20">
			<td colspan="5" class="format_cell"><%= rsSites ("sSajt") %>&nbsp;&nbsp;</td></tr>
<%
			[b]sql =	"SELECT " &_
				"id AS id_test, LEFT(pDate, 6) AS pMonth, pPeriod, SUM(nBRake) AS sumBRake, SUM(nBonus) AS sumBonus, SUM(nRakeback) AS sumRakeback, nCurrency " &_
				"FROM payout " &_
				"WHERE cID IN " &_
				"(" &_
				"SELECT id " &_
				"FROM customers " &_
				"WHERE nReferer = " & nCustId &_
				") " &_
				"AND pSite = '" & rsSites ("sSajt") & "' " &_
				"GROUP BY pPeriod, pDate, nCurrency, id"[/b]

			Set rsMonths = conn.Execute (sql)
			i = 0
			While Not rsMonths.EOF
				cur_currency = rsMonths ("nCurrency")
				If isNumeric(cur_currency) And cur_currency > 0 Then
					Set rs = conn.Execute("SELECT currency_name FROM aws_currency WHERE currency_id = " & cur_currency)
					If Not rs.EOF Then cur_currency = rs("currency_name") Else cur_currency = "" End If
					Set rs = Nothing
				End If
				If i Mod 2 = 0 Then bgC = "row_even" Else bgC = "row_odd" End If
				Response.Write(	"<tr class=""" & bgC & """>" & VbCrLf &_
						"<td>&nbsp;&nbsp;" & rsMonths("pPeriod") & "</td>" & VbCrLf &_
						"<td>" & rsMonths("sumBRake") & "</td>" & VbCrLf &_
						"<td>" & rsMonths("sumBonus") & "</td>" & VbCrLf &_
						"<td>" & rsMonths("sumRakeback") & "</td>" & VbCrLf &_
						"<td>" & cur_currency & "</td>" & VbCrLf &_
						"</tr>" & VbCrLf)
				i = i + 1
			rsMonths.MoveNext
			Wend
		rsSites.MoveNext
		Wend
	End If
rsSites.Close
Set rsSites = Nothing

Den fetstilta sqlfrågan är den som plockar ut det intressanta här och mitt problem är alltså att "pPeriod" kan vara densamma flera rader efter varann, finns det fler poster, där perioden är densamma ska siffrorna summeras under denna period.
Ett problem som jag haft tidigare är att i princip alla fält i databasen (MS-SQL Server) är av typen CHAR, eftersom datum etc. varierar i formatering beroende på vilket spelbolag som skickar statistik. Så det kanske inte ens är säkert att det här går, men det vore bra om det gick.

Inser att jag förklarar lite dåligt nu, men jag vet inte riktigt hur jag ska förklara på ett annat sätt.

Bifogar en bild på hur det ser ut idag, det som är "inringat", är alltså sådant som egentligen ska summeras.

Kan ge er mer info och mer kod, men eftersom det här är en del av kundsidorna på sajten, kan jag tyvärr inte släppa in er "live".

Tack på förhand!

dump_payouts.jpg
284 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
141 ms — hämta tråd, inlägg och bilagor (db)
135 ms — ändringar (db)