---
title: "Fråga innehållande dividera med 0"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/60370-fråga-innehållande-dividera-med-0"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Obbelix"
published: "2002-11-26T21:45:11.000Z"
updated: "2002-11-26T22:52:26.000Z"
replies: 12
views: 316
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/60370-fråga-innehållande-dividera-med-0"
---

# Fråga innehållande dividera med 0

## #1 — Obbelix, 2002-11-26T21:45Z

Halloj på er!

Har ett problem som jag försökt löst genom att söka på forumet men har inte funnit nåt.

Har ett stryktips som man måste ange vilket lag man håller på för att kunna vara med å tippa.
Nu tänkte jag att jag skulle ta ut ett värde på hur bra supportrarna för lagen i snitt är på att tippa (procentuellt).

Varje gång man rättar så adderas varje tippares antal rätt till i ett fält för respektives lag, samt + 1 för varje match i "match fältet"

När jag sen ska få ut detta så använder jag:

```
strSQL = "SELECT lag, poang, matcher, antal, ROUND(poang  / matcher ,2) as medelbetyg FROM Support ORDER BY 5 DESC "
```

Problemet är att om alla supportrar för nåt lag inte tippat alls så är ju både matcher och poäng 0.

Kan man på nåt sätt undvika dessa nollor i sql-frågan?

/Peter

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

## #2 — Nickemannen, 2002-11-26T21:49Z

man kan väl ha if i en sql sats ?

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

## #3 — Eitraz, 2002-11-26T21:49Z

eller så lägger du ut
*ROUND(poang  / matcher ,2)*
utan för SQL satsen och kollar om den är noll..

\-Eitraz

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

## #4 — Jörgen HP, 2002-11-26T21:51Z

Du kan ju alltid lägga till ett villkor, problemet då är att du inte får ut dessa poster, vilket du kanske vill?

```
strSQL = "SELECT lag, poang, matcher, antal, ROUND(poang  / matcher ,2) as medelbetyg FROM Support WHERE poang > 0 AND matcher > 0 ORDER BY 5 DESC "
```

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

## #5 — LarsG, 2002-11-26T21:57Z

```
strSQL = "SELECT lag, poang, matcher, antal, " & _
" case when matcher <> 0 then ROUND(poang  / matcher ,2)  else 0 end as medelbetyg " & _
" FROM Support  " & _
" ORDER BY 5 DESC "
```

Vilken dbms använder du?

Inte mycket asp i detta. Flyttas.

redigerat bort where som inte är relevant om man har case.

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

## #6 — Jörgen HP, 2002-11-26T22:01Z

LarsG, en fråga:

Varför måste man köra case-satsen när WHERE-villkoret filtrerar bort de fallen som inte är större än 0 ?

Teoretiskt sätt borde else-satsen i case-villkoret aldrig köras?

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

## #7 — LarsG, 2002-11-26T22:03Z

Nu klippte jag fel kod. Jag tänkte att det skulle vara utan where. Jag redigerar.

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

## #8 — Jörgen HP, 2002-11-26T22:06Z

Även gurus kan missa :e

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

## #9 — Obbelix, 2002-11-26T22:12Z

Ojojoj... Tack tack för alla snabba svar.

Jag kör på "Jörgen HP's" svar:

```
strSQL = "SELECT lag, poang, matcher, antal, ROUND(poang  / matcher ,2) as medelbetyg FROM Support WHERE poang > 0 AND matcher > 0 ORDER BY 5 DESC "
```

Sen kör jag en runda till för att eventuellt plocka fram de med '0'

```
strSQL = "SELECT lag, antal FROM Support WHERE poang =0 or matcher =0 ORDER BY antal ASC "
```

Sen loopar jag först ut de med nåt värde sen de med noll.

Är detta helt galet? Det funkar finfint i alla fall...
Testade även en sväng med LarsG's förslag men fick det aldrig att funka.

Tack igen för snabba svar!

//Peter

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

## #10 — LarsG, 2002-11-26T22:16Z

Att du fick fel med min kod kan bero på att t.ex. Access inte har stöd för den konstruktionen. Det finns motsvarande.

Vad fick du för fel?

Det verkar ju onödigt att ställa två frågor då det går lika bra med en.

Access

```
strSQL = "SELECT lag, poang, matcher, antal, " & _
" iif(matcher <> 0,ROUND(poang  / matcher ,2),0) as medelbetyg " & _
" FROM Support  " & _
" ORDER BY 5 DESC "
```

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

## #11 — Obbelix, 2002-11-26T22:42Z

Jo jag använder Access. Minns inte felmeddelandet.

Angående koden. ska det inte vara med en else sats?
Blir denna kod snabbare än den andra?

Ska testa den imorrn när jag är lite piggare.

//Peter

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

## #12 — LarsG, 2002-11-26T22:46Z

> Angående koden. ska det inte vara med en else sats?

 

iif fungerar så att om första argumentet är sant så returneras andra argument annars det tredje. 

> Blir denna kod snabbare än den andra?

 

Jo, något bättre borde det bli.

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

## #13 — Obbelix, 2002-11-26T22:52Z

OK!

ja trodde att "iif" var ett stavfel därför "else" frågan.

Ska som sagt testa imorrn...

/Peter

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/60370-fråga-innehållande-dividera-med-0
