SQL - Ayuda consulta count en SQL

   
Vista:

Ayuda consulta count en SQL

Publicado por Luis (6 intervenciones) el 13/08/2017 03:34:27
Tengo 4 tablas

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.



consulta
estudiante
Grupo
Grupos_estudiante
maestro
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias

Ayuda consulta count en SQL

Publicado por Isaias (1068 intervenciones) el 14/08/2017 16:06:34
¿En que motor de base de datos estas trabajando?, ¿Es una tarea?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Ayuda consulta count en SQL

Publicado por Luis (6 intervenciones) el 14/08/2017 17:04:21
Es phpMyAdmin
estoy desarollando una plataforma la cual los maestros se registran, ingresan los grupos a los que les imparten clases, posteriormente agregan las materias a las que les dan a esos grupos y agregan tareas a las materias, el estudiante se registra y con el codigo del grupo que se le genero al maestro automaticamente salen las materias y las tareas que tiene ese grupo, pero justo con esta consulta es lo que no puedo, lo demas ya lo tengo, la idea de esta consulta es que me visualice cuantos alumnos estan inscritos por decirlo asi a dicho grupo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias

Ayuda consulta count en SQL

Publicado por Isaias (1068 intervenciones) el 14/08/2017 20:03:13
phpMyAdmin = MySQL

Espero que alguien pueda darte una guia

Si relizas la siguiente consulta ¿Que resultado de arroja?

1
select Grupo.Id from Grupo where Maestro_Id = 'bfxfz1'
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda consulta count en SQL

Publicado por Luis (6 intervenciones) el 16/08/2017 14:26:31
598fac766e4a1-Grupo

este seria el resultado de realizar esa consulta.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda consulta count en SQL

Publicado por Conrado conrado.blasetti@gmail.com (7 intervenciones) el 16/08/2017 15:31:22
Hola, probá:

1
2
3
4
5
6
7
8
select a.Id, a.Nombre, count(1) alumnos
  from Grupo a,
       Grupos_Estudiante b,
       Maestro c
 where a.id = b.id_grupo
   and c.id = a.maestro_id
   and c.id = 'bfxfz1'
 group by a.Id, a.Nombre

Saludos,
Conrado
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Ayuda consulta count en SQL

Publicado por Luis (6 intervenciones) el 17/08/2017 08:27:47
Gracias por tu respuesta y por ayudarme a buscar una solucion a mi problema, en serio te lo agradesco mucho, Tu consulta esta bien solo que si algun grupo cuenta con 0 alumnos registrados en ese grupo en vez de mostrarme la cantidad del count en 0 no me muestra el grupo.

Grupos del maestro
grupo

Grupos que esta inscrito el alumno
Grupos_estudiante

esta consulta (la que me publicaste) tendria que mostrarme el grupo Diseño digital con 0 alumnos registrados en el pero no apaarece.
consulta
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda consulta count en SQL

Publicado por Conrado conrado.blasetti@gmail.com (7 intervenciones) el 17/08/2017 13:13:11
Probà anidando las consultas.

1
2
3
4
5
6
7
8
9
10
select x.id, x.nombre, x.alumnos from (
  select a.Id, a.Nombre, count(1) alumnos
    from Grupo a,
         Grupos_Estudiante b,
         Maestro c
   where a.id = b.id_grupo
     and c.id = a.maestro_id
     and c.id = 'bfxfz1'
   group by a.Id, a.Nombre) x
where x.alumnos >0;

Lo ideal es siempre al consultar, poner el script de create e insert de datos para poder replicar lo que tenes y asi es mas facil responder!!
Saludos,
Conrado
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar

Ayuda consulta count en SQL

Publicado por Luis (6 intervenciones) el 17/08/2017 17:43:45
La consulta me sigue arrojando como resultado solamente el grupo que tiene alumnos inscritos, te dejo las inserciones.

Tabla Maestro:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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)
 
);

datos:

1
INSERT INTO `maestro` (`Id`, `Nombre`, `Apellido`, `Ciudad`, `Correo`, `Contrasena`, `Imagen`) VALUES ('bfxfz1', 'Raul', 'Morales', 'México', 'raulmorales@gmail.com', 'raulmorales', 'bfxfz1.jpg')



Tabla Estudiante:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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)
 
);

datos:

1
2
3
INSERT INTO `estudiante` (`Id`, `Nombre`, `Apellido`, `Ciudad`, `Correo`, `Contrasena`, `Imagen`) VALUES ('ny5wuv', 'Juan Carlos', 'Hernandez Hernandez', 'México', 'juancarlos@gmail.com', 'juancarlos', 'usuario.png')
 
INSERT INTO `estudiante` (`Id`, `Nombre`, `Apellido`, `Ciudad`, `Correo`, `Contrasena`, `Imagen`) VALUES ('yaqurd', 'Luis Manuel', 'Zavaleta Lopez', 'México', 'luisacxis@gmail.com', 'luisacxis', 'usuario.png')



tabla Grupo:

1
2
3
4
5
6
7
8
9
10
11
12
13
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)
 
);


datos:

1
2
3
INSERT INTO `grupo` (`Id`, `Nombre`, `Maestro_Id`) VALUES ('3okexs', 'Diseño Digital', 'bfxfz1')
 
INSERT INTO `grupo` (`Id`, `Nombre`, `Maestro_Id`) VALUES ('v740pm', 'Si 305', 'bfxfz1')


Tabla Grupos_Estudiante

1
2
3
4
5
6
7
8
9
10
11
12
13
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)
 
);

datos:

1
INSERT INTO `grupos_estudiante` (`Id`, `Id_Grupo`, `Id_estudiante`) VALUES ('ncy4pc', 'v740pm', 'yaqurd')
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda consulta count en SQL

Publicado por Conrado (7 intervenciones) el 17/08/2017 18:01:42
Ah, entendì mal la consulta.

Esto te muestra lo que necesitas con los datos ofrecidos, hay que probar con mas datos y ver si cierra, pero deberìa funcionar:

1
2
3
4
5
6
7
8
select a.Id, a.Nombre, (select count(1)
		from Grupos_Estudiante b,
			Maestro c
		where a.id = b.id_grupo
			and c.id = a.maestro_id
			and c.id = 'bfxfz1'
	) alumnos
from Grupo a
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Ayuda consulta count en SQL

Publicado por Luis (6 intervenciones) el 17/08/2017 18:24:12
Parece ser que todo funciona correctamente :D

pagina

Seguire haciendo pruebas y cosas asi por el estilo, muchas gracias por tu ayuda Conrado :D

Te dejo el link de la pagina por si gustas darte una vuelta y ver como va quedando.

http://www.HomeWorkLine.esy.es
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar