webForumDet fria alternativet

Foruminlägg med count

9 svar · 398 visningar · startad av Travoni

TravoniMedlem sedan okt. 20041 556 inlägg
#1

Jag skulle vilja räkna antalet svar i samma select som jag listar alla inlägg som inte är ett svar (WHERE c.c_relid=0). Jag har inläggen och svaret i samma tabell, svaret får ett relations id till inlägget i kolumnen c_relid.

SELECT c.c_id AS id, c.c_title AS titel, c.c_date AS datum, m.m_name AS namn, [B]count(c.c_id) as svar[/B]
FROM members AS m INNER JOIN contribution AS c ON m.m_id=c.c_mid
WHERE c.c_relid=0
GROUP BY c.c_id, c.c_title, c.c_date, m.m_name

Men hur jag än gör så står det "1" i counten.

Hur gör jag?

Är det bättre att lägga inlägg och svar i olika tabeller?

LarsGMedlem sedan dec. 200012 464 inlägg
#2
SELECT c.c_id AS id, 
       c.c_title AS titel, 
       c.c_date AS datum, 
       m.m_name AS namn, 
       (select count(*) 
          from contribution
         where c_relid = c.c_cid) as svar
  FROM members AS m INNER JOIN contribution AS c ON m.m_id=c.c_mid
 WHERE c.c_relid=0
headbugMedlem sedan sep. 2006867 inlägg
#3

Hej!

Det går bra att ha både inlägg och svar i samma tabell och få count:en rätt om du lägger till en till join (kräver att du byter plats på de två du har nu). Förresten jag klistarar in mitt exempel:

SELECT 
	c.c_id AS id, 
	c.c_title AS titel, 
	c.c_date AS datum, 
	m.m_name AS namn, 
	count(*) as svar
FROM 
	contribution AS c
	INNER JOIN members AS m ON m.m_id=c.c_mid
	INNER JOIN contribution AS c2 ON c2.c_relid = c.c_id WHERE c.c_relid = 0
GROUP BY c.c_id, c.c_title, c.c_date, m_name

Hoppas det funkar :)

/Jonas

TravoniMedlem sedan okt. 20041 556 inlägg
#4

Snyggt!

TravoniMedlem sedan okt. 20041 556 inlägg
#5

Ahh, jag kom på att jag måste använda LEFT join annars så får jag bara med poster med svar och när jag använder headbugs exempel så står det 1 svar på de poster som inte har något svar.
LarsGs variant verkar inte funka alls i access.

LarsGMedlem sedan dec. 200012 464 inlägg
#6

Vad får du för fel då?

TravoniMedlem sedan okt. 20041 556 inlägg
#7

I Access får jag fram "Ange parametervärde" på fetmarkerad kolumn:

 ...(select count(*) 
          from contribution
         where c_relid = [b]c.c_cid[/b]) as svar)...
TravoniMedlem sedan okt. 20041 556 inlägg
#8

Kör jag den i ASP så får jag : Det har inte angetts något värde för en eller flera nödvändiga parametrar.

LarsGMedlem sedan dec. 200012 464 inlägg
#9

Jamen, det skall väl vara

where c_relid = c.c_id)
TravoniMedlem sedan okt. 20041 556 inlägg
#10

Ja, ja ett c för mycket hit å dit. ;)

Tack!

128 ms totalt · 3 externa anrop · v20260731065814-full.86db40fa
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)