Zählen mit count()
am 09.07.2007 21:35:29 von info
Hallo in die Runde,
ich habe folgendes Problem: Ich muss bei folgendem Query
SELECT
a.id
FROM
tab_a a,
tab_b b
WHERE
a.id =3D b.id AND
a.status > 0
a.id IN (
SELECT
c.id
FROM
tab_c c
WHERE
c.role IN (1,2)
GROUP BY
c.id
HAVING
COUNT(c.id) >=3D 0 AND
COUNT(c.id) <=3D 4
)
ebenfalls die mit einem COUNT von "0" berücksichtigen. Da Problem an
diesem Query ist, das es keine mit dem einem Count von 0 gibt, da
diese durch den c.role IN (1, 2) bereits weggefiltert werden. Ich
benötige diese aber zwingend.
Irgendeine Idee?
Danke für Antworten.
Björn.
Re: Zählenmit count()
am 10.07.2007 04:22:57 von B.Steinbrink
On Mon, 09 Jul 2007 12:35:29 -0700, info wrote:
^^^^
Hier sind echte Namen erwünscht.
> Hallo in die Runde,
>
> ich habe folgendes Problem: Ich muss bei folgendem Query
>
> SELECT
> a.id
> FROM
> tab_a a,
> tab_b b
> WHERE
> a.id = b.id AND
> a.status > 0
> a.id IN (
> SELECT
> c.id
> FROM
> tab_c c
> WHERE
> c.role IN (1,2)
> GROUP BY
> c.id
> HAVING
> COUNT(c.id) >= 0 AND
> COUNT(c.id) <= 4
> )
>
> ebenfalls die mit einem COUNT von "0" berücksichtigen. Da Problem an
> diesem Query ist, das es keine mit dem einem Count von 0 gibt, da diese
> durch den c.role IN (1, 2) bereits weggefiltert werden. Ich benötige
> diese aber zwingend.
>
> Irgendeine Idee?
Ohne von meiner Kristallkugel genaueres erfahren zu haben, schätze ich du
möchtest zählen, wie oft eine id in der Rolle 1 oder 2 vorkommt, ja? Ohne
die Tabellen zu kennen, sieht das zwar gerade komisch aus, aber bitte:
SELECT
id
FROM
tab_c
GROUP BY
id
HAVING
SUM(role in (1,2)) BETWEEN 0 AND 4
Björn
Re: Zählen mit count()
am 10.07.2007 06:41:23 von info
On 10 Jul., 04:22, Björn Steinbrink wrote:
> On Mon, 09 Jul 2007 12:35:29 -0700, info wrote:
>
> ^^^^
> Hier sind echte Namen erwünscht.
Super! Vielen Dank für die schnelle Antwort.
Björn Ahlers