Sven Rautenberg: Problem mit SELECT COUNT

Beitrag lesen

Moin!

Hmmm, wenn UNION nicht geht - gibts dann eine andere Alternative?

JOIN.

Ich möchte jetzt beispielsweise alle Werte pro Spalte, die >= 3 und <= 7 sind und dazu auch entsprechend benannte Spaltennamen:
Ziel1   |   Ziel2   |   Ziel3   |   Ziel4
3           1           4           1

Das muß doch gehen?!

Indem du die Tabelle viermal miteinander joinst. Oder (was einfacher sein dürfte) viermal die Tabelle einzeln abfragst.

Datenbanken sind zeilenorientiert. Wenn du mit einer WHERE-Bedingung also die Datensätze eingrenzt, selektierst du damit immer eine Teilmenge aller vorhandenen Datensätze.

Diese Teilmenge kann von "null" Datensätzen bis hin zu "allen" Datensätzen gehen.

Und mit diesem Ergebnis kannst du dann diverse Zählungen veranstalten.

Das, was du aber willst: Du willst für jede Spalte individuell die Anzahl zutreffender Datensätze bzw. Zeilen feststellen. Das geht nur mit individuellen WHERE-Bedingungen je Spalte. Denn du kannst in einer einzelnen Bedingung ja nur mit AND und OR verknüpfen, erhieltest dann eine gewisse Anzahl an Spalten, und könntest die zählen - das Ergebnis wäre je Spalte identisch (weil ja gleichviele Zeilen in jeder Spalte selektiert wurden.

Deshalb: Entweder JOIN oder vier Einzelabfragen (wobei die Einzelabfragen sicher schneller programmiert sind).

- Sven Rautenberg

--
"Beim Stuff für's Web gibts kein Material, was sonst das Zeugs ist, aus dem die Sachen sind."
(fastix®, 13. Oktober 2003, 02:26 Uhr -> </archiv/2003/10/60137/#m338340>)