---
title: "Få fram periodresultat"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/127542-få-fram-periodresultat"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Obbelix"
published: "2005-05-03T14:11:12.000Z"
updated: "2005-05-04T17:31:37.000Z"
replies: 5
views: 265
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/databaser-sql/127542-få-fram-periodresultat"
---

# Få fram periodresultat

## #1 — Obbelix, 2005-05-03T14:11Z

Nu är jag här igen med mina "sql-problem" :)

Säg att tabellen ser ut så här:

```
period | time_min | time_sec | action_type | team_id | home_goals | away_goals
1        10         12         goal          55        1            0
1        11         22         goal          55        2            0
2        05         48         goal          58        2            1
2        06         10         goal          55        3            1
2        15         22         goal          58        3            2
3        16         55         goal          55        4            2
```

Går det utifrån detta att få fram följande resultat

```
period | team1 | team2
1        2       0
2        1       2
3        1       0
```

Jag skulle ju kunna göra en fråga per lag men undrar alltså om det går att lösa i en å samma.

Permalänk: https://www.webforum.nu/p/127542

## #2 — LarsG, 2005-05-03T14:20Z

```
select period, 
max(home_goals) - min(home_goals) -
case when min(home_goals) > 0 then 1 else 0 end,
max(away_goals) - case wmin(away_goals) -
case when min(away_goals) > 0 then 1 else 0 end
from t
group by period
```

Permalänk: https://www.webforum.nu/p/1605299

## #3 — Obbelix, 2005-05-03T14:42Z

Tackar. Men jag misstänker att det ska vara "+" istället för "-" innan case och att det ska vara "min" istället för "case wmin" , eller? ;)

Har testat denna och den verkar så långt funka som den ska

```
select period, 
max(home_goals) - min(home_goals) +
case when min(home_goals) > 0 then 1 else 0 end,
max(away_goals) - min(away_goals) +
case when min(away_goals) > 0 then 1 else 0 end
from t
group by period
```

Permalänk: https://www.webforum.nu/p/1605328

## #4 — Obbelix, 2005-05-04T13:38Z

Har nu hunnit testa lite mer, och den räknar lite fel...
Har denna SQL-fråga:

```
select period,
max(home_goals) - min(home_goals) + 
case when min(home_goals) >0 then 1 else 0 end AS t1goal,
max(away_goals) - min(away_goals) +
case when min(away_goals) >0 then 1 else 0 end AS t2goal 
from game_data where game_id=53 
group by period
```

Och kör den på denna tabell:

```
period | time_min | time_sec | action_type | team_id | home_goals | away_goals
1        07         08         goal          55        0            1
2        04         13         goal          58        1            1
2        10         09         goal          55        1            2
2        12         17         goal          55        1            3
3        06         10         goal          58        2            3
```

Och får ut detta resultatet:

```
period | t1goal | t2goal
1        0        1
2        1        3
3        1        1
```

Men vill få ut detta:

```
period | t1goal | t2goal
1        0        1
2        1        2
3        1        0
```

Vad gör jag för fel?

/red: stavfel i kolumnnamn

Permalänk: https://www.webforum.nu/p/1605784

## #5 — LarsG, 2005-05-04T15:49Z

```
select period,
max(coalesce(home_goals,0)) -
(select max(coalesce(home_goals,0))
   from game_data
  where game_id = 53
    and period < gd.period) as t1goal,
max(coalesce(away_goals,0)) -
(select max(coalesce(away_goals,0))
   from game_data
  where game_id = 53
    and period < gd.period) as t2goal
from game_data gd 
where game_id=53 
group by period
```

Du får problem med de perioder där det blir 0-0.

Permalänk: https://www.webforum.nu/p/1605851

## #6 — Obbelix, 2005-05-04T17:31Z

nja. den blev inte rätt heller, men ledde mig till rätt svar (tror jag i alla fall).
Gjorde såhär:

```
select period,
(select count(*) 
  from game_data 
  where action_type='goal' 
  and game_id=53 
  and period=gd.period 
  and team_id=22) as t1goal,
(select count(*) 
  from game_data 
  where action_type='goal' 
  and game_id=53 
  and period=gd.period 
  and team_id=21) as t2goal
from game_data gd 
where game_id=53 
group by period
```

För jag vet ju vilka lag som spelar och vet också vilka poster som är "mål".

Permalänk: https://www.webforum.nu/p/1605900

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/127542-få-fram-periodresultat
