webForumDet fria alternativet

Räkna mål

Databaser & SQLur Databashanterare & SQL

2 svar · 157 visningar · startad av andreas_lindh

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

jag har en tabell som ser ut så här
gameID
TeamID
period
time_min
time_sec
player_id
action_type

Nu försöker jag räkna ut vad ställningen var när det blev mål
har försökt med den här frågan

SELECT 
sum(case when cast(time_min +':'+ time_sec as datetime) <= @time then 1 else 0 end)
FROM         tik2005_gameEvents
WHERE     (GameID = @gameID) and period <= @period and action_type = 'Goal' and teamID=@teamID

Problemet är att den räknar fel.
Ex
lag 1 gör mål efter 5 minuter i period 1 och efter 3 minuter i period 2

Då skriver frågan ut 1-0 två gånger istället för att skriva ut 2-0 vid det andra målet.

Någon som har ett förslag på hur jag ska göra?

Medlem sedan dec. 200012 464 inlägg
#2

Ge exempel på datainnehåll.
Ge exempel på vilket resultat du vill ha (givet värde på inparametrarna).

Medlem sedan jan. 20011 140 inlägg
#3

Innehåll

GameID  TeamID  Period time_min  time_sec  player_id action_type
1              1           1         10             05            1               Goal
1              1           2         03             23            1               Goal

Då vill jag att utskriften ska bli
period 1 10.05 1-0
period 2 03.23 2-0

Nu blir det
period 1 10.05 1-0
period 2 03.23 1-0

@gameID = matchen tex 1
@period = perioden för det gjorda målet. tex 2
@time tiden för det gjorda målet tex 03.23
@teamID =laget som gjorde mål tex 1

Jag kör frågan två gånger vid varje mål för att få ut hur många mål varje lag gjort.

132 ms totalt · 3 externa anrop · v20260731065814-full.25f56b17
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)