Ayuda consulta count en SQL
Publicado por Luis (6 intervenciones) el 13/08/2017 03:34:27
Tengo 4 tablas
y quiero hacer una consulta donde me muestre el Id del grupo, el Nombre del grupo, y me cuente cuantos estudiantes estan dentro del mismo grupo pasando como parametro el Id del maestro, intente con
"select Grupo.Id, Grupo.Nombre, count(Id_estudiante) from Grupo,Grupos_Estudiante where Grupos_Estudiante.Id_Grupo IN (select Grupo.Id from Grupo where Maestro_Id = 'bfxfz1') group by Grupo.Nombre" pero me marca que por cada materia tengo 2 alumnos cuando realmente solo deberia de ser 1.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
CREATE TABLE Maestro (
Id VARCHAR(45) NOT NULL,
Nombre VARCHAR(45) NOT NULL,
Apellido VARCHAR(45) NOT NULL,
Ciudad VARCHAR(45) NOT NULL,
Correo VARCHAR(45) NOT NULL,
Contrasena VARCHAR(45) NOT NULL,
Imagen VARCHAR(45) NULL DEFAULT 'usuario.png',
PRIMARY KEY(Id)
);
CREATE TABLE Estudiante (
Id VARCHAR(45) NOT NULL,
Nombre VARCHAR(45) NOT NULL,
Apellido VARCHAR(45) NOT NULL,
Ciudad VARCHAR(45) NOT NULL,
Correo VARCHAR(45) NOT NULL,
Contrasena VARCHAR(45) NOT NULL,
Imagen VARCHAR(45) NULL DEFAULT 'usuario.png',
PRIMARY KEY(Id),
INDEX Estudiante_FKIndex1(Maestro_Id)
);
CREATE TABLE Grupo (
Id VARCHAR(45) NOT NULL,
Nombre VARCHAR(45) NOT NULL,
Maestro_Id VARCHAR(45) NOT NULL,
PRIMARY KEY(Id),
INDEX Grupo_FKIndex1(Maestro_Id)
);
CREATE TABLE Grupos_Estudiante (
Id VARCHAR(45) NOT NULL,
Id_Grupo VARCHAR(45) NOT NULL,
Id_estudiante VARCHAR(45) NULL,
PRIMARY KEY(Id),
INDEX Tarea_FKIndex1(Id_Grupo)
);
y quiero hacer una consulta donde me muestre el Id del grupo, el Nombre del grupo, y me cuente cuantos estudiantes estan dentro del mismo grupo pasando como parametro el Id del maestro, intente con
"select Grupo.Id, Grupo.Nombre, count(Id_estudiante) from Grupo,Grupos_Estudiante where Grupos_Estudiante.Id_Grupo IN (select Grupo.Id from Grupo where Maestro_Id = 'bfxfz1') group by Grupo.Nombre" pero me marca que por cada materia tengo 2 alumnos cuando realmente solo deberia de ser 1.
Valora esta pregunta
0