---
title: "Summering av data som är utvalt"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/68874-summering-av-data-som-är-utvalt"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Skogiz"
published: "2003-02-20T15:22:40.000Z"
updated: "2003-02-27T09:25:16.000Z"
replies: 13
views: 374
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/68874-summering-av-data-som-är-utvalt"
---

# Summering av data som är utvalt

## #1 — Skogiz, 2003-02-20T15:22Z

Hej!

Jag har satt ihop ett enkelt och litet tidrappoteringssystem.

När man listar alla poster får man en tabell med

id - Datum - Kund - Signatur - Utfört arbete - Antal timmar

Det jag nu undrar är om man kan gör en urvalssida där man bara listar poster från en användare (att detta går vet jag) men finns det någon finurlig funktion att sumera \<antal timmar\> för just den signaturen (användaren) jag väljer att lista.

Lite tips hur man kan gå till väga är välkommet!

Tack :)

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

## #2 — OveRRidE, 2003-02-20T15:36Z

Jag är ingen SQL-expert, men nåt sånt här kanske?

```
"SELECT u.id, u.datum, u.kund, u.signatur, u.utfort_arbete, u.antal_timmar, " & _
"(SELECT SUM(antal_timmar) FROM users WHERE userId = " & request.form("userId") & ") as SummaTimmar " & _
"FROM users u " & _
WHERE u.userId = " & request.form("userId") & ""
```

PS. Du borde döpa om fälten Utfört Arbete och Antal Timmar, inga mellanslag eller svenska tecken. Jag omnamngav dem ovan.

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

## #3 — LarsG, 2003-02-20T16:42Z

Flyttad från ASP

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

## #4 — Skogiz, 2003-02-21T12:54Z

Tack för SQL-strängen men hur bör SQL-satsen se ut på en asp-sida eller funkar det att köra din sats rätt upp och ner? 

Och hur rappoterar jag ut resultatet på asp-sidan?

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

## #5 — OveRRidE, 2003-02-21T13:04Z

Jahapp, jag visste att vi inte skulle flytta tråden, Lars. ;)

```
set conn = server.createobject("adodb.connection")
conn.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.mappath("databas.mdb")
SQL = "SELECT u.id, u.datum, u.kund, u.signatur, u.utfort_arbete, u.antal_timmar, " & _
"(SELECT SUM(antal_timmar) FROM users WHERE userId = " & request.form("userId") & ") as SummaTimmar " & _
"FROM users u " & _
WHERE u.userId = " & request.form("userId") & ""
set rs = conn.execute(SQL)

while not rs.eof 
   response.write rs("kund") & "<br>"
   rs.movenext
wend

set rs = nothing
set conn = nothing
```

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

## #6 — Skogiz, 2003-02-21T14:15Z

Ja jag blev lite förvånad när tråden flyttades men jag har mig själv att skylla då jag var otydlig vad det gällde... ;)

I alla fall

Jag har satt in den här koden

```
<%
  'Sök användare ur tabellen tid och summera antalet timmar
  Dim strSQL
  strSQL = "SELECT tid.Datum, tid.Kund, tid.Antal_timmar, tid.Signature, tid.Work, " & _
  "SELECT SUM(antal_timmar) FROM tid WHERE Signature = " & Request.Form("insig") & ") as SummaTimmar " & _
  "FROM tid " & _ 
  WHERE tid.Signature = " & Request.Form("insig") & ""

  'Skapa en instans av objektet Recordset och hämta info
  Dim objRS
  Set objRS = Server.CreateObject("ADODB.Recordset")
  objRS.Open strSQL, objConn
  %>
```

men det blir fel...

Microsoft VBScript compilation error '800a0401' 

Expected end of statement 

/webrapport.asp, line 14 

WHERE "tid.Signature = " & Request.Form("insig") & ""
\------^

Tack på förhand.

/Fredrik

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

## #7 — OveRRidE, 2003-02-21T14:25Z

```
set conn = server.createobject("adodb.connection")
conn.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.mappath("databas.mdb")
SQL = "SELECT u.id, u.datum, u.kund, u.signatur, u.utfort_arbete, u.antal_timmar, " & _
"(SELECT SUM(antal_timmar) FROM users WHERE userId = " & request.form("userId") & ") as SummaTimmar " & _
"FROM users u " & _
"WHERE u.userId = " & request.form("userId") & ""
set rs = conn.execute(SQL)

while not rs.eof 
   response.write rs("kund") & "<br>"
   rs.movenext
wend

set rs = nothing
set conn = nothing
```

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

## #8 — Skogiz, 2003-02-25T14:19Z

Använder följande kod

```
Dim Conn
  Dim SQL

  Set Conn = Server.CreateObject("ADODB.Connection")
  Conn.open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=E:\Databaser\time_report.mdb;"  
  'Sök användare ur tabellen tid och summera antalet timmar
  SQL = "SELECT tid.Datum, tid.Kund, tid.Antal_timmar, tid.Signature, tid.Work, " & _
  "(SELECT SUM(antal_timmar) FROM tid WHERE Signature = " & Request.Form("insig") & ") as SummaTimmar " & _
  "FROM tid tid " & _
  "WHERE tid.Signature = " & Request.Form("insig") & ""
  set rs = Conn.execute(SQL)

  While not rs.eof
     Response.Write rs("kund") & "<br>"
     rs.movenext
  Wend
```

Min databas heter som ni ser time_report.mdb och och tabellen heter tid och fälten i databasen Räknare, Datum, Kund, Antal_timmar, Signature och Work

När i exemplet ovan antar jag att t.ex u.datum ska vara tid.Datum och så vidare...(?)

I alla fall när jag använder min kod får jag detta felet

"Microsoft JET Database Engine error '80040e10' 

No value given for one or more required parameters. 

/webrapport.asp, line 19 "

Rad 19 är

set rs = Conn.execute(SQL)

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

## #9 — juventus1, 2003-02-25T15:14Z

```
Dim Conn
  Dim SQL

  Set Conn = Server.CreateObject("ADODB.Connection")
  Conn.open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=E:\Databaser\time_report.mdb;"  
  'Sök användare ur tabellen tid och summera antalet timmar
  SQL = "SELECT tid.Datum, tid.Kund, tid.Antal_timmar, tid.Signature, tid.Work, " & _
  "(SELECT SUM(antal_timmar) FROM tid WHERE Signature = " & Request.Form("insig") & ") as SummaTimmar " & _
  "FROM [b]tid[/b] " & _
  "WHERE tid.Signature = " & Request.Form("insig") & ""
  set rs = Conn.execute(SQL)

  While not rs.eof
     Response.Write rs("kund") & "<br>"
     rs.movenext
  Wend
```

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

## #10 — Skogiz, 2003-02-25T15:27Z

Tyvärr kvarstår 

Microsoft JET Database Engine error '80040e10' 

No value given for one or more required parameters. 

/webrapport.asp, line 19 

Även efter att jag tagit bort det dubbla "tid" :/

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

## #11 — juventus1, 2003-02-25T16:16Z

Hur ser den ut om du skriver ut den?

```
Response.Write SQL
'set rs = Conn.execute(SQL)
```

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

## #12 — Skogiz, 2003-02-26T09:05Z

Utskriften blir så här

```
SELECT tid.Datum, tid.Kund, tid.Antal_timmar, tid.Signature, tid.Work, (SELECT SUM(antal_timmar) FROM tid WHERE Signature = FS) as SummaTimmar FROM tid WHERE tid.Signature = FS
```

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

## #13 — juventus1, 2003-02-26T16:03Z

Ok, då borde detta fungera bättre:

```
Dim Conn
  Dim SQL

  Set Conn = Server.CreateObject("ADODB.Connection")
  Conn.open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=E:\Databaser\time_report.mdb;"  
  'Sök användare ur tabellen tid och summera antalet timmar
  SQL = "SELECT tid.Datum, tid.Kund, tid.Antal_timmar, tid.Signature, tid.Work, " & _
  "(SELECT SUM(antal_timmar) FROM tid WHERE Signature = [b]'" & Request.Form("insig") & "'"[/b]) as SummaTimmar " & _
  "FROM tid " & _
  "WHERE tid.Signature = [b]'" & Request.Form("insig") & "'"[/b]
  set rs = Conn.execute(SQL)

  While not rs.eof
     Response.Write rs("kund") & "<br>"
     rs.movenext
  Wend
```

Signature är någon slags sträng och måste därför jämföras så här: Signature = 'värde'

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

## #14 — Skogiz, 2003-02-27T09:25Z

Ah tack!!!

Nu fungerar det. Nu får jag ut resultat iaf. Nu gäller det bara att få till visningen på rätt sätt men det borde vara något enklare :)

Tack än en gång för all hjälp!

/Fredrik

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/68874-summering-av-data-som-är-utvalt
