---
title: "Problem med ifsats"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/178202-problem-med-ifsats"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "dareknowak"
published: "2009-04-21T14:08:22.000Z"
updated: "2009-04-22T00:06:33.000Z"
replies: 10
views: 636
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/asp/178202-problem-med-ifsats"
---

# Problem med ifsats

## #1 — dareknowak, 2009-04-21T14:08Z

Asså jag har suttit och kollat igenom den gång på gång men jag hittar absolut inget fel ändå får jag inte rätt värde.

```
Set objRS = objConn.Execute("SELECT Sum(antal) AS st, Sum(pris * antal) AS totalt FROM kundvagn WHERE user = '" & strUser & "'")
If objRS.Eof Then
Response.Write "0 artiklar i kundvagnen totalt: 0:-"
Else
Response.Write objRS("st") & " artiklar i kundvagnen totalt: " & FormatNumber(objRS("totalt"),0) & ":-"
End If
```

tabellen är helt tom och den vill fortfarande inte skriva ut "0 artiklar i kundvagnen totalt: 0:-"

Vad kan va fel?

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

## #2 — Ledel, 2009-04-21T14:39Z

SUM() returnerar väl ett värde, i det här fallet på antalet. Detta blir 0, men för att du ska få med informationen returneras det ju en rad till din objRS, och därmed finns det en rad i den.

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

## #3 — voigtann1, 2009-04-21T14:39Z

Vad skriver objRS.RecordCount ut för antal träffar?

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

## #4 — Peter S, 2009-04-21T14:41Z

Det är för att SUM() returnerar NULL om inga träffar fås. Därför får du alltid en returrad.

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

## #5 — dareknowak, 2009-04-21T17:54Z

Jo den borde väl returnera 0 men det gör det inte utan värdet är helt tomt när databasen är tom så att säga.

objRS.RecordCount skriver ut -1 (Även när det finns värde i databasen)

Men ifall det skulle returnera null borde ju "If objRS("st") = null Then" fungera?
Men det gör det inte.

Något förslag hur man kan lösa det? :)

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

## #6 — Peter S, 2009-04-21T18:13Z

Nej, den borde inte returnera 0 eftersom ingen summering skett. I stället returneras NULL (vilket du kan se genom att skriva t.ex. response.write isnull(objrs(0))).

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

## #7 — dareknowak, 2009-04-21T18:27Z

Japp det returnerade True när databasen är tom så testade att ändra till detta

```
Set objRS = objConn.Execute("SELECT Sum(antal) AS st, Sum(pris * antal) AS totalt FROM kundvagn WHERE user = '" & strUSER & "'")
If isnull(objrs(0)) = True Then
Response.Write "0 artiklar i kundvagnen totalt: 0:-"
Else
Response.Write objRS("st") & " artiklar i kundvagnen totalt: " & FormatNumber(objRS("totalt"),0) & ":-"
End If
```

Och det funkar då, men kan jag göra såhär eller kommer det börjar krångla på något sätt längre fram?

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

## #8 — Peter S, 2009-04-21T18:41Z

Det kommer att fungera såvida inte "antal" eller "pris" innehåller NULL på någon rad i tabellen :)

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

## #9 — LarsG, 2009-04-21T18:50Z

NULL-värden elimineras vid summering. Resultatet blir null om alla rader är null.

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

## #10 — dareknowak, 2009-04-21T20:12Z

Okej, Tack för hjälpen.

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

## #11 — Troxy, 2009-04-22T00:06Z

Om du vill returnera 0 om inga poster finns så kan du använda coalesce:

```
SELECT Coalesce(Sum(antal), 0) AS st ...
```

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/178202-problem-med-ifsats
