---
title: "villkor if i en Select sats ger ej önskat värde"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/82548-villkor-if-i-en-select-sats-ger-ej-önskat-värde"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "max"
published: "2003-07-23T12:08:16.000Z"
updated: "2003-07-23T15:11:39.000Z"
replies: 3
views: 379
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/82548-villkor-if-i-en-select-sats-ger-ej-önskat-värde"
---

# villkor if i en Select sats ger ej önskat värde

## #1 — max, 2003-07-23T12:08Z

Hej

Hur har ni det i sommarvärmen, behöver hjälp.

Vill få ut en lista i en datagrid och har skrivit en lagrad procedur som inte vill fungera som jag vill. Har ett villkor på Fakturerad om den är 0 skall den summeras och visas i listan. Koden ser ut som nedan och resultatet skall vara

Kundnr      Namn  Modul   Antal ej fakturerade
1               Test 1 Modul1      12
1               Test 1 Modul2        5
2               Test 2 Modul1        -
2               Test 2 Modul2        5

SELECT     S.KundNr AS Kundnr, S.Namn AS Namn, sModul as Modul,  if L.Fakturerad = '0' THEN COUNT(L.Fakturerad) ELSE '-' AS Antal END IF
FROM         System S INNER JOIN
                      Logg L ON S.KundNr = L.KundNr
WHERE     L.DemoKund = '0' AND sModul = @Modul AND S.TestFtg is null OR s.TestFtg = '0'
GROUP BY S.KundNr, S.Namn, sModul
ORDER BY S.KundNr

Detta ger felaktig syntax nära then.

Hoppas ni är med på problemet, hör annars av er.

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

## #2 — @nders, 2003-07-23T12:12Z

Jag skulle använda CASE istället för IF. Dock finns ett problem; en summa av någonting är ett tal, dvs inte samma datatyp som **'-'**. Så antingen får du typkonvertera i frågan, eller välja null istället, och hantera det i applikationen.

**red**: Bytte *heltal* mot *tal*, eftersom det faktiskt kan vara decimaler i en summa. ;-)

Mvh

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

## #3 — LarsG, 2003-07-23T12:44Z

Dvs

```
 SELECT S.KundNr AS Kundnr, S.Namn AS Namn, sModul as Modul, case when L.Fakturerad = '0' THEN COUNT(L.Fakturerad) end  AS Antal
```

 

Jag skulle nog också lägga till lite parenteser i where för att få rätt precedens.

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

## #4 — max, 2003-07-23T15:11Z

Tack för den fina och snabba hjälp. Ni gör så att vardagen känns lika lycklig som helgen.

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/82548-villkor-if-i-en-select-sats-ger-ej-önskat-värde
