Servus.
ich stehe vor einem Problem was ein querry angeht.
Ich habe eine Tabelle "member" in der Personen drin stehen. Ihr Geschlecht ist in der Spalte "gender_id" mit den Werten 1 für Frau und 2 für Mann festgelegt.
Weiterhin will ich aus einer anderen Tabelle "gender_ref" in der eine Beschreibung für die geschlechter in der Spalte "gender" steht. Aso F und M.
nun möchte ich eine Ausgabe erhalten, die mir die Beschreibung F und M ausgibt und dahinter die Anzahl der Männer und Frauen.
ca. so
Gender-------Number
F 5
M 7
Ich wollte das ganze über einen count machen (logisch). Also habe ich gecountet
select count(gender_id) from member where gender_id=1
so damit bekomme ich die Anzhal der Frauen.
Um die Anzahl der Männer in die gleiche Spalte in der Ausgabe zu bekommen, habe ich das ganze über ein UNION lösen wollen, denn (und das ist dann eigentlich mein Problem) habe ich keine andere Möglichkeit gefunden, wie ich aus einer Quellspalte zwei unterschiedliche Sachen counten kann un diese dann in einer Spalte wieder ausgeben kann.
also so:
select count(a.gender_id) as number from member a where a.gender_id=1 UNION ALL
select count(b.gender_id) as number from member b where b.gender_id=2
Um das nun irgendwie in die ausgabe zu bekommen, habe ich das ganze in die FROM geschrieben.
Mein aufruf sah also so aus:
SELECT
gr.gender as "Gender",
gnr.number as "Number"
FROM
gender_ref gr,
(select count(a.gender_id) as number from member where
a.gender_id=1 UNION ALL select count(b.gender_id) as number from
member b where b.gender_id=2)
GROUP BY
gr.gender, gnr.number
Soweit mein Abfrage, aber mein Ergebnis ist nicht wie oben erhofft, sonder so:
Gender Number
---F------------------5
---F------------------7
---M-----------------5
---M-----------------7
Kann das sogar technisch verstehen, da durch das UNION das ganze eben zweimal aufgerufen wird, aber ich weiß leider nicht wie ich es anders machen soll. Über VIEWs habe ich es auch schon probiert. Gleiches Ergebnis
Ich hoffe, dass mir jemand vielleicht einen Rat geben kann, wie man das mit dem Counten in der gleichen Spalte machen kann.
THX
Robin
ich stehe vor einem Problem was ein querry angeht.
Ich habe eine Tabelle "member" in der Personen drin stehen. Ihr Geschlecht ist in der Spalte "gender_id" mit den Werten 1 für Frau und 2 für Mann festgelegt.
Weiterhin will ich aus einer anderen Tabelle "gender_ref" in der eine Beschreibung für die geschlechter in der Spalte "gender" steht. Aso F und M.
nun möchte ich eine Ausgabe erhalten, die mir die Beschreibung F und M ausgibt und dahinter die Anzahl der Männer und Frauen.
ca. so
Gender-------Number
F 5
M 7
Ich wollte das ganze über einen count machen (logisch). Also habe ich gecountet
select count(gender_id) from member where gender_id=1
so damit bekomme ich die Anzhal der Frauen.
Um die Anzahl der Männer in die gleiche Spalte in der Ausgabe zu bekommen, habe ich das ganze über ein UNION lösen wollen, denn (und das ist dann eigentlich mein Problem) habe ich keine andere Möglichkeit gefunden, wie ich aus einer Quellspalte zwei unterschiedliche Sachen counten kann un diese dann in einer Spalte wieder ausgeben kann.
also so:
select count(a.gender_id) as number from member a where a.gender_id=1 UNION ALL
select count(b.gender_id) as number from member b where b.gender_id=2
Um das nun irgendwie in die ausgabe zu bekommen, habe ich das ganze in die FROM geschrieben.
Mein aufruf sah also so aus:
SELECT
gr.gender as "Gender",
gnr.number as "Number"
FROM
gender_ref gr,
(select count(a.gender_id) as number from member where
a.gender_id=1 UNION ALL select count(b.gender_id) as number from
member b where b.gender_id=2)
GROUP BY
gr.gender, gnr.number
Soweit mein Abfrage, aber mein Ergebnis ist nicht wie oben erhofft, sonder so:
Gender Number
---F------------------5
---F------------------7
---M-----------------5
---M-----------------7
Kann das sogar technisch verstehen, da durch das UNION das ganze eben zweimal aufgerufen wird, aber ich weiß leider nicht wie ich es anders machen soll. Über VIEWs habe ich es auch schon probiert. Gleiches Ergebnis
Ich hoffe, dass mir jemand vielleicht einen Rat geben kann, wie man das mit dem Counten in der gleichen Spalte machen kann.
THX
Robin