2017-02-27 15 views
1

を照会し、私は、MySQLの使用を開始し、私はこの問題は、私は人の性別を持つ特定のテーブルの関連trablas間のクエリを作りたいということです。この問題に難易度

を持っていましたそれは女性か男性か。

これは、クエリ

SELECT c.Nom_carre as Preparatory, count(a.Gen_alum) as Gender 
FROM alumno a, carrera c WHERE a.idCarrera=c.idCarrera 

このコード数(a.Gen_alum)は私に人の男性または女性かどうかの合計を示して作るために自分のコードになります。 私は別に知りたいですか?男性は何人、女性は何人ですか?

+0

からカウントしたいとこれを変更')または' GROUP BY a.Gen_alum WITH ROLLUP'を実行します。しかし、テーブル間の関係を明確に定義していない限り、正しい答えを与えるのは難しい/不可能です。また、group by節にないカラム( 'c.Nom_carre'のような)を選択するのは意味がありません。 –

答えて

0

によってグループでcountを使用する必要があります

SELECT c.Nom_carre as Preparatory, sum(field(a.Gen_alum,'male')) as Male,sum(field(a.Gen_alum,'Female')) as Female 
FROM alumno a 
join carrera c on a.idCarrera=c.idCarrera 
group by a.idCarrera; 

ここで '男性' と '女性'、あなたはあなたがtotal_mとしてconditianal集計( `COUNT(CASE a.Gen_alumは= 'M' END)を使用する必要がありますいずれかの列

+0

良いですがジェンダーを垂直に置き、水平にしないでください – Jorge1023

+0

Gen_alumのデータを表示してください – denny

+0

あなたは天才です、ありがとう、私は完璧に働いています!私が尋ねるとき、合同の私の不足のため少し少しお詫び申し上げます、私はほとんど英語を話しません:/ – Jorge1023

0

下記のコードを試してください。

SELECT c.Nom_carre AS Preparatory, 
     count(a.Gen_alum) AS Gender 
FROM alumno a, 
    carrera c 
WHERE a.idCarrera=c.idCarrera 
GROUP BY a.Gen_alum 

お手伝いします。ここで

+0

これはエラーを出すだろう:unknown column Group by節の性別 –

0

あなたの要件として垂直そのディスプレイにデータをField()を使うjoin

SELECT c.Nom_carre as Preparatory, count(a.Gen_alum) as Gender 
FROM alumno a 
join carrera c on a.idCarrera=c.idCarrera 
group by a.Gen_alum; 

を更新して、あなたが使用する必要があります

SELECT c.Nom_carre as Preparatory, count(a.Gen_alum) as Gender 
FROM alumno a 
JOIN carrera c ON a.idCarrera = c.idCarrera 
GROUP BY a.Gen_alum 
+0

良いですが、性別を縦に入れて横にしないでください – Jorge1023

+0

DB構造を共有してください...縦または横の意味を理解できません – Naincy