---
title: "Många COUNT"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/14424-många-count"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "evesve"
published: "2002-02-10T18:33:00.000Z"
updated: "2002-02-13T22:25:00.000Z"
replies: 12
views: 236
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/14424-många-count"
---

# Många COUNT

## #1 — evesve, 2002-02-10T18:33Z

Hej! Nytt problem!
Jag vill ha ut en tabell som ska se ut ungefär så här:
\============
AVD1	Summa:12st	 ' Summan av Grupp 1-3
  Grupp1	Summa:3st
  Grupp2	Summa:4st
  Grupp3	Summa:5st
AVD2	Summa:10st	 ' Summan av Grupp 1-3
  Grupp1	Summa:4st
  Grupp2	Summa:2st
  Grupp3	Summa:4st
osv.
\============
Jag har kommit så här långt när det gäller COUNT och att visa tabellen.
Det här bör visa lista och räkna Avd1 resp. Avd1/Grupp1.
Hur får jag den att räkna varje grupp utan att lägga till mängder med COUNT?

```
<%Set RecSet = Server.CreateObject("ADODB.Recordset") 
 Visa = "SELECT * FROM Avdelningar order by Avd"
summa = "SELECT count(*) AS grupper FROM databas where Avd = 'Avd1'"
summa2 = "SELECT count(*) AS Grupper2 FROM databas where Avd = 'Avd1' AND Grupp= 'Grupp1'"

RecSet.Open summa, Connect, adOpenStatic, adLockOptimistic  
summa=RecSet("Grupper")
RecSet.Close

RecSet.Open summa2, Connect, adOpenStatic, adLockOptimistic  
summa2=RecSet("Grupper2")
RecSet.Close

RecSet.Open Visa, Connect, adOpenStatic, adLockOptimistic

Response.write "<TR><TD colspan=5> <B>"&RecSet("Avd")&"</B>, "&antalsold&"</TD></TR>"

 Do While Not RecSet.EOF %> 
<!--MELLANRUM MELLAN GRUPPERNA-->
 <%Grupp = ""
 If Grupp <> RecSet("Avd") then
 if Grupp <> "" thenResponse.write "<TR><TD colspan=5> <B>"&RecSet("Avd")&"</B>, "&summa&"</TD></TR>" 
 Grupp = RecSet("Avd")
 end if %>
<!--MELLANRUM MELLAN GRUPPERNA slut-->

<TR>
<td><% =RecSet("Avd") %></td>
<td><% =RecSet(Grupp") %></td>
<td><% =summa2 %> st</td>
</TR>
<% RecSet.MoveNext 
Loop
RecSet.Close %>
```

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

## #2 — LarsG, 2002-02-10T19:46Z

Kan du testa med denna fråga

```
select count(*) as Total, avd, '' as grupp,1 as typ
  from databas
 group by avd
union
select count(*) ,avd,grupp,2
  from databas
 group by avd,grupp
order by avd,typ,grupp
```

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

## #3 — evesve, 2002-02-11T17:57Z

Det verkar bra, men jag får inte ut det rätt.
Jag har försökt alla alternativ i stället för mina nedanstående frågetecken och får samma värde antingen en eller trettio gånger.

```
RecSet.Open summa, Connect, adOpenStatic, adLockOptimistic 
summa=????????????????????????????
Do While Not RecSet.EOF
Response.write summa
RecSet.MoveNext 
Loop
RecSet.Close
```

...något förenklat.

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

## #4 — LarsG, 2002-02-12T09:39Z

```
query = "select count(*) as Total, avd, '' as grupp,1 as typ
from databas group by avd
union select count(*) ,avd,grupp,2
from databas group by avd,grupp order by avd,typ,grupp"

set rs = connect.execute(query)

while not rs.eof
if cint(rs("typ") = 1 then
   response.write rs("avd") 
else
response.write rs("grupp")
end if
response.write " Summa: " & rs("total") & "st <br>"
rs.movenext
wend
rs.close
set rs=nothing
```

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

## #5 — evesve, 2002-02-12T20:58Z

Suveränt! Det bara rasslade siffror.
Till och med rätt siffror!
Dom kopplingar jag har är 01, 02, 03 o.s.v som ligger under "Avd".
Motsvarande för grupperna.
Vilket ger:
01 Summa:12 st
01 Summa: 3 st
02 Summa: 4 st
03 Summa: 5 st
02 Summa:10 st
O.S.V.

Kan jag i samma selectsats få ut ex. 
"Avd 1" som i kolumnen "Anamn" alltid är samma som "01" i kolumnen "Avd".
Detta skulle ge:
01 Avd1 Summa:12 st
01 Grp1 Summa: 3 st
02 Grp2 Summa: 4 st
03 Grp2 Summa: 5 st
02 Avd1 Summa:10 st
O.S.V.
Jag har för sökt hämta namnen från en annan tabell där jag listat avdelningar och grupper, men som vanligt:
Ingen framgång.

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

## #6 — LarsG, 2002-02-12T22:36Z

Det beror på hur dom tabller där du har namn på grupper och avdelnngar ser ut.

Vilka kolumnre ingår och hur hänger det ihop med tabellen databas?

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

## #7 — evesve, 2002-02-13T15:36Z

Det är det som är problemet att dom inte är kopplade till varandra.

Jag har en tabell (Enheter) med kolumnerna:
Avd, Anamn, Grupp, Gnamn
som listas:
01, Avd1, 01, Grp1
01, Avd1, 02, Grp2
OSV.
Den tabellen använder jag för menystruktur och inmatning av nya enheter.
Ska den användas så måste antingen selectsatsen ge ett noll-värde på rader som inte finns representerade i "databas" eller så måste raderna från "enheter" utelämnas om dom inte finns i "databas" (bästa alternativet).
Kan man inte hitta någon "select distinct"-variant på tabellen "databas" och koppla ihop det COUNT?

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

## #8 — LarsG, 2002-02-13T16:20Z

Jo ,det är lite olyckligt med den databasdesignen. Om du testar den här frågan då?

```
query = "select total,anamn,grupp,type from (
select count(*) as Total, avd, '' as grupp,1 as typ
from databas group by avd ) as s inner join enheter on s.avd = enheter.avd
union select count(*) ,anamn,grpnamn,2
from databas inner join enheter on (databas.avd = enheter.avd and databas.grupp = enheter.grupp)
group by avd,grupp order by avd,typ,grupp"
```

I och med att man har en union så kommer den att ta bort alla duplikat.

red: saknades en parentes.

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

## #9 — evesve, 2002-02-13T16:47Z

Felmeddelande:
Det angivna fältet 'Avd' kan referera till fler än en av de tabeller som är uppräknade i SQL-uttryckets FROM-instruktion

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

## #10 — LarsG, 2002-02-13T17:01Z

```
query = "select total,anamn,grpnamn,type from (
select count(*) as Total, avd, '' as grpnamn,1 as typ
from databas group by avd ) as s inner join enheter on s.avd = enheter.avd
union select count(*) ,anamn,grpnamn,2
from databas inner join enheter on (databas.avd = enheter.avd and databas.grupp = enheter.grupp)
group by anamn,grpnamn order by anamn,typ,grpnamn"
```

Ny bytte jag så att du bara får upp anamn, grpnamn och typ. (Avd oh grupp är väl ointressant?)

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

## #11 — evesve, 2002-02-13T18:25Z

Jag har bytt ut så jag ser "Avd1" i stället för "01" med hjälp av din ursprungliga kod.
Det fungerar alldeles förträffligt så länge.
I och för sig är det bättre med sortering på "01"-fälten, men man kan väl inte få allt här i livet.
Ditt senaste kodförslag ska jag försöka få in när jag har begripit vad den innebär.
Jag tackar så länge! Återkommer säkert!

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

## #12 — Jesper T, 2002-02-13T18:30Z

> men man kan väl inte få allt här i livet.

Vem har sagt det? Vem sätter begränsningarna? ;)

MVH Jesper T

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

## #13 — evesve, 2002-02-13T22:25Z

Nej Jesper,
men lite ödmjukhet skadar väl inte.
Mitt slutmål är ungefär: <http://www.websamba.com/svenssons/test/avdelningar.html>  
.....men varför skynda så länge det fortfarande är vinter?

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/14424-många-count
