---
title: "hjälp med sql-fråga"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/74837-hjälp-med-sql-fråga"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "andreas_lindh"
published: "2003-04-23T22:56:40.000Z"
updated: "2003-04-25T12:18:48.000Z"
replies: 3
views: 201
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/74837-hjälp-med-sql-fråga"
---

# hjälp med sql-fråga

## #1 — andreas_lindh, 2003-04-23T22:56Z

Jag har tänkt att köra en tipstävling på en hemsida där besökarna kan tippa resultat i en hockeyserie.

Jag har de här tabellerna

s_matcher
id
lagid_a
lagid_b
resultat_a
resultat_b

tmatcher
id
uID
m_ID
res_a
res_b

har användaren tippat helt rätt får han 3 poäng, rätt segrare 1 poäng. Tippar man 2-2 men det blir 3-3 får man 2 poäng.
jag har lyckats räkna alla resultat som är helt rätt och de som ger 2 poäng.
1 poäng får man alltså om man tippat rätt segrare men inte rätt resultat

Hur ska jag göra för att räkna de som ger 1 poäng?

frågan ser ut så här nu

```
SELECT s_matcher.ID,tMatcher.m_id,tMatcher.uID,
@matcher := count(tMatcher.ID) as matcher,
@fPoints := (Sum(s_matcher.ID = tMatcher.m_ID and (s_matcher.resultat_a = tMatcher.res_a and s_matcher.resultat_b = tMatcher.res_b))*3) as fpoints,
@ties := (Sum(s_matcher.ID = tMatcher.m_ID and ((s_matcher.resultat_a = s_matcher.resultat_b and tMatcher.res_a = tMatcher.res_b) and (tMatcher.res_a <> s_matcher.resultat_a and tMatcher.res_b <> s_matcher.resultat_b)))*2) as ties
FROM s_matcher inner join tMatcher on s_matcher.id = tMatcher.m_ID
group by tMatcher.uID
```

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

## #2 — aasah, 2003-04-24T13:23Z

Enklast borde väl vara att helt enkelt ta fram namnen på de personer som tippat rätt segrare och därur ta bort namnen på dem som fått 2 eller 3 poäng. De senare har du ju redan räknat ut. Detta kan göras på två sätt med except (mängdoperation) eller med hjälp av not in.

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

## #3 — andreas_lindh, 2003-04-25T08:21Z

har du något exempel på hur man gör det?

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

## #4 — andreas_lindh, 2003-04-25T12:18Z

jag löste det med en till sum

```
@points :=sum(s.ID=t.m_ID And ((s.resultat_a>s.resultat_b And t.res_a > t.res_b) And
 (s.resultat_a<>t.res_a And ((s.resultat_b<>t.res_b) Or (s.resultat_b=t.res_b)))
 or (s.resultat_a < s.resultat_b And t.res_a < t.res_b) 
And (s.resultat_b<>t.res_b And ((s.resultat_a<>t.res_a) Or (s.resultat_a=t.res_a))))) as points
```

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/74837-hjälp-med-sql-fråga
