webForumDet fria alternativet
Logga in / Bli medlem

Ta fram antal minuter/sekunder

Databaser & SQL

1 svar · 267 visningar · startad av Obbelix

Medlem sedan okt. 2002257 inlägg
Trådstart#1

Har en tabell som ser ut som följer:

[b]game_id | period | period_time_min | period_time_sec | action_type | player_id | team_id[/b]
23        1        0                 0                 GK in         55          123
23        1        0                 0                 GK in         63          144
23        1        6                 34                Goal          34          144
23        1        20                0                 GK out        55          123
23        1        20                0                 GK out        63          144
23        2        0                 0                 GK in         55          123
23        2        0                 0                 GK in         63          144
23        2        8                 45                Goal          71          144
23        2        12                22                GK out        55          123
23        2        12                22                GK in         92          123
23        2        20                0                 GK out        63          144
23        2        20                0                 GK out        92          123

Nu skulle jag vilja räkna ut hur många sekunder (minuter) som varje målvakt stått i mål i en aktuell match. Som ni ser kommer målvakterna in i period 1 och båda står hela den (20 min).
Sen i andra gör ena laget ett byte efter 12:22 och då borde resultatet bli följande:

[b]game_id | team_id | player_id | time_in_goal[/b] (sekunder)
23        123       55          1942
23        144       63          2400
23        123       92          458

Går det att få ut följande i en SQL-fråga eller ska man göra på nåt annat sätt?
Använder ASP + MSSQL 2000

Medlem sedan dec. 200012 464 inlägg
#2
select game_id,
       player_id,
       team_id,
       sum(case when action_type = 'GK in' then -1 else 1 end *
           (60*period_time_min+period_time_sec))
    from games
  where action_type in ('GK in','GK out')
 group by game_id,
       player_id,
       team_id
260 ms totalt · 4 externa anrop · v20260731065814-full.7d626504
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)