webForumDet fria alternativet

hjälp med sql-fråga

Databaser & SQL

5 svar · 255 visningar · startad av andreas_lindh

Medlem sedan jan. 20011 140 inlägg
Frågan#1

jag har 2 tabeller i en mysql databas
statistik
---------
spelarID - tal

Matchfakta
---------
malskytt - tal
ass1 - tal
ass2 - tal

Ny skulle jag vilja räkna ihop alla poster där
statistik.spelarID = malskytt som mål
och
statistik.spelarID = ass1 eller statistik.spelarID = ass2 som assist

Jag har testat med både sum och count men får det inte att fungera.
Någon som vet hur jag ska göra för att det ska fungera

Medlem sedan jan. 20032 285 inlägg
#2

/red Läste frågan lite galet. :)

Medlem sedan dec. 200012 464 inlägg
#3
select spelarid,
sum(case when malskytt = spelarid then 1 else 0  end) +
sum(case when ass1 = spelarid then 1 else 0  end) +
sum(case when ass2 = spelarid then 1 else 0  end)
from statistik,matchfakta
where spelarid in (malskytt,ass1,ass2)
group by spelarid
Medlem sedan jan. 20011 140 inlägg
#4

Tack. Men den fungerar inte riktigt som den ska. Den räknar ihop allt men resultatet blir dubbelt.
Finns tex spelarid 1 i malskytt 4 gånger blir resutatet 8

Medlem sedan dec. 200012 464 inlägg
#5

Då låter det som om det finns flera förekomster av spelarid i statistik

Medlem sedan jan. 20011 140 inlägg
#6

Tack.
Spelarid fanns flera gånger. Hade missat att jag lagt till flera serier.

253 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)