MySQL - error en consultas

 
Vista:
Imágen de perfil de enrique
Val: 23
Ha aumentado su posición en 3 puestos en MySQL (en relación al último mes)
Gráfica de MySQL

error en consultas

Publicado por enrique (10 intervenciones) el 11/11/2016 23:26:31
buenas tardes compañeros tengo un pequeño error que no se como solucionar,
el problema es que cuando consulto las calificaciones de un año (grado) de un alumno me salen
todas las calificaciones de todos los años (grados) que lleva cursando el alumno,

esta es mi consulta
1
select * from antecedentes an join alumnos a  on an.alumnos_idalumnos=a.idalumnos join status_alumno s on an.status_alumno_idstatus_alumno=s.idstatus_alumno join nivel n on an.nivel_idnivel=n.idnivel join calificacion ca on an.alumnos_idalumnos=antecedentes_alumnos_idalumnos join materia ma on ca.materia_idmateria=ma.idmateria   where curp=  and nivel_idnivel=2 and ca.grado=2
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 xve
Val: 796
Oro
Ha mantenido su posición en MySQL (en relación al último mes)
Gráfica de MySQL

error en consultas

Publicado por xve (1151 intervenciones) el 12/11/2016 08:22:09
Hola Enrique, pero en el Where, no indicas el año del que quieres que te devuelva los resultados...
tendria que haber algo como:
1
WHERE year(Fecha)=2016 AND ...

No se si es esta la solución, ya que desconozco por completo los campos...


Nota: Tienes curp= sin ningún valor.
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 enrique
Val: 23
Ha aumentado su posición en 3 puestos en MySQL (en relación al último mes)
Gráfica de MySQL

error en consultas

Publicado por enrique (10 intervenciones) el 14/11/2016 16:52:30
que tal xve no me di cuenta que tenia la curp vacia pero aun asi manda toda la informacion no solo la que le pido

estas son mis tablas

CREATE TABLE antecedentes(`idantecedentes` INT NOT NULL AUTO_INCREMENT,`nivel_idnivel` INT NOT NULL,`status_alumno_idstatus_alumno` INT NOT NULL,`cct` VARCHAR(45) NULL,`ciclo_escolar` VARCHAR(45) NULL,`grado` VARCHAR(45) NULL, `grupo` INT NULL,`alumnos_idalumnos` INT NOT NULL, PRIMARY KEY (`idantecedentes`));

CREATE TABLE calificacion(`idcalificacion` INT NOT NULL AUTO_INCREMENT,`momento_ca` INT NULL,`grado` INT NULL,`calificacion` DECIMAL NULL, `materia_idmateria` INT NOT NULL, `antecedentes_nivel_idnivel` INT NOT NULL, `antecedentes_alumnos_idalumnos` INT NOT NULL, PRIMARY KEY (`idcalificacion`));
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
sin imagen de perfil
Val: 26
Ha aumentado 1 puesto en MySQL (en relación al último mes)
Gráfica de MySQL

error en consultas

Publicado por Andres (12 intervenciones) el 15/11/2016 13:57:41
No veo la tabla de alumnos, si pudieras mandar un backup de tus tablas con datos de prueba sería de gran ayuda, y para entender los campos de tus tablas un pequeño comentario, por ejemplo la tabla antecedentes
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 enrique
Val: 23
Ha aumentado su posición en 3 puestos en MySQL (en relación al último mes)
Gráfica de MySQL

error en consultas

Publicado por enrique (10 intervenciones) el 15/11/2016 16:09:25
CREATE TABLE `alumnos` (
`idalumnos` int(11) NOT NULL AUTO_INCREMENT,
`curp` varchar(45) DEFAULT NULL,
`nombre` varchar(45) DEFAULT NULL,
`apellido_p` varchar(45) DEFAULT NULL,
`apellido_m` varchar(45) DEFAULT NULL,
`fecha` varchar(45) DEFAULT NULL,
`domicilio` varchar(45) DEFAULT NULL,
`sexo` varchar(45) DEFAULT NULL,
`grado` int(11) DEFAULT NULL,
PRIMARY KEY (`idalumnos`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `alumnos`
--

LOCK TABLES `alumnos` WRITE;
/*!40000 ALTER TABLE `alumnos` DISABLE KEYS */;
INSERT INTO `alumnos` VALUES (1,'LUGL911010HMSGRS00','LUIS ENRIQUE','LUGO','GARCIA','10/10/1991','Morelos','masculino',NULL),(2,'LUGL001201MMSGRZ07','LUZ ELENA','LUGO','GARCIA','01/12/2000','Morelos','femenino',NULL);
/*!40000 ALTER TABLE `alumnos` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `anio_escolar`
--

DROP TABLE IF EXISTS `anio_escolar`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `anio_escolar` (
`fecha` varchar(20) DEFAULT NULL,
`calificacion_nu` int(11) DEFAULT NULL,
`antecedentes_alumnos_idalumnos` int(11) DEFAULT NULL,
`antecedentes_nivel_idnivel` int(11) DEFAULT NULL,
KEY `antecedentes_alumnos_idalumnos` (`antecedentes_alumnos_idalumnos`),
KEY `antecedentes_nivel_idnivel` (`antecedentes_nivel_idnivel`),
CONSTRAINT `anio_escolar_ibfk_1` FOREIGN KEY (`antecedentes_alumnos_idalumnos`) REFERENCES `antecedentes` (`alumnos_idalumnos`),
CONSTRAINT `anio_escolar_ibfk_2` FOREIGN KEY (`antecedentes_nivel_idnivel`) REFERENCES `antecedentes` (`nivel_idnivel`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `anio_escolar`
--

LOCK TABLES `anio_escolar` WRITE;
/*!40000 ALTER TABLE `anio_escolar` DISABLE KEYS */;
INSERT INTO `anio_escolar` VALUES ('2012-2013',10,1,2),('2012-2013',10,1,2),('2012-2013',10,1,2),('2012-2013',10,1,2),('2014-2015',0,1,2);
/*!40000 ALTER TABLE `anio_escolar` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `antecedentes`
--

DROP TABLE IF EXISTS `antecedentes`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `antecedentes` (
`idantecedentes` int(11) NOT NULL AUTO_INCREMENT,
`nivel_idnivel` int(11) NOT NULL,
`status_alumno_idstatus_alumno` int(11) NOT NULL,
`cct` varchar(45) DEFAULT NULL,
`ciclo_escolar` varchar(45) DEFAULT NULL,
`grado` int(11) DEFAULT NULL,
`grupo` varchar(10) DEFAULT NULL,
`alumnos_idalumnos` int(11) NOT NULL,
PRIMARY KEY (`idantecedentes`),
KEY `status_alumno_idstatus_alumno` (`status_alumno_idstatus_alumno`),
KEY `alumnos_idalumnos` (`alumnos_idalumnos`),
KEY `nivel_idnivel` (`nivel_idnivel`),
CONSTRAINT `antecedentes_ibfk_1` FOREIGN KEY (`status_alumno_idstatus_alumno`) REFERENCES `status_alumno` (`idstatus_alumno`),
CONSTRAINT `antecedentes_ibfk_2` FOREIGN KEY (`alumnos_idalumnos`) REFERENCES `alumnos` (`idalumnos`),
CONSTRAINT `antecedentes_ibfk_3` FOREIGN KEY (`nivel_idnivel`) REFERENCES `nivel` (`idnivel`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `antecedentes`
--

LOCK TABLES `antecedentes` WRITE;
/*!40000 ALTER TABLE `antecedentes` DISABLE KEYS */;
INSERT INTO `antecedentes` VALUES (1,2,1,'17DPR0230P','2012-2013',1,'A',1),(2,2,1,'17DPR0230P','2016-2017',1,'A',2),(3,2,1,'17DPR0230P','2013-2014',2,'A',1);
/*!40000 ALTER TABLE `antecedentes` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `calificacion`
--

DROP TABLE IF EXISTS `calificacion`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `calificacion` (
`idcalificacion` int(11) NOT NULL AUTO_INCREMENT,
`momento_ca` int(11) DEFAULT NULL,
`grado` int(11) DEFAULT NULL,
`calificacion` decimal(10,0) DEFAULT NULL,
`materia_idmateria` int(11) NOT NULL,
`antecedentes_nivel_idnivel` int(11) NOT NULL,
`antecedentes_alumnos_idalumnos` int(11) NOT NULL,
PRIMARY KEY (`idcalificacion`),
KEY `antecedentes_nivel_idnivel` (`antecedentes_nivel_idnivel`),
KEY `antecedentes_alumnos_idalumnos` (`antecedentes_alumnos_idalumnos`),
CONSTRAINT `calificacion_ibfk_1` FOREIGN KEY (`antecedentes_nivel_idnivel`) REFERENCES `antecedentes` (`nivel_idnivel`),
CONSTRAINT `calificacion_ibfk_2` FOREIGN KEY (`antecedentes_alumnos_idalumnos`) REFERENCES `antecedentes` (`alumnos_idalumnos`)
) ENGINE=InnoDB AUTO_INCREMENT=101 DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `calificacion`
--

LOCK TABLES `calificacion` WRITE;
/*!40000 ALTER TABLE `calificacion` DISABLE KEYS */;
INSERT INTO `calificacion` VALUES (1,1,1,'10',28,2,1),(2,1,1,'10',29,2,1),(3,1,1,'10',30,2,1),(4,1,1,'10',31,2,1),(5,1,1,'10',32,2,1),(6,1,1,'10',33,2,1),(7,1,1,'10',34,2,1),(8,1,1,'10',35,2,1),(9,1,1,'10',36,2,1),(10,1,1,'10',37,2,1),(11,2,1,'10',28,2,1),(12,2,1,'10',29,2,1),(13,2,1,'10',30,2,1),(14,2,1,'10',31,2,1),(15,2,1,'10',32,2,1),(16,2,1,'10',33,2,1),(17,2,1,'10',34,2,1),(18,2,1,'10',35,2,1),(19,2,1,'10',36,2,1),(20,2,1,'10',37,2,1),(21,3,1,'10',28,2,1),(22,3,1,'10',29,2,1),(23,3,1,'10',30,2,1),(24,3,1,'10',31,2,1),(25,3,1,'10',32,2,1),(26,3,1,'10',33,2,1),(27,3,1,'10',34,2,1),(28,3,1,'10',35,2,1),(29,3,1,'10',36,2,1),(30,3,1,'10',37,2,1),(31,4,1,'10',28,2,1),(32,4,1,'10',29,2,1),(33,4,1,'10',30,2,1),(34,4,1,'10',31,2,1),(35,4,1,'10',32,2,1),(36,4,1,'10',33,2,1),(37,4,1,'10',34,2,1),(38,4,1,'10',35,2,1),(39,4,1,'10',36,2,1),(40,4,1,'10',37,2,1),(41,5,1,'10',28,2,1),(42,5,1,'10',29,2,1),(43,5,1,'10',30,2,1),(44,5,1,'10',31,2,1),(45,5,1,'10',32,2,1),(46,5,1,'10',33,2,1),(47,5,1,'10',34,2,1),(48,5,1,'10',35,2,1),(49,5,1,'10',36,2,1),(50,5,1,'10',37,2,1),(51,1,2,'9',28,2,1),(52,1,2,'7',29,2,1),(53,1,2,'6',30,2,1),(54,1,2,'10',31,2,1),(55,1,2,'6',32,2,1),(56,1,2,'10',33,2,1),(57,1,2,'9',34,2,1),(58,1,2,'9',35,2,1),(59,1,2,'7',36,2,1),(60,1,2,'8',37,2,1),(61,2,2,'10',28,2,1),(62,2,2,'6',29,2,1),(63,2,2,'8',30,2,1),(64,2,2,'7',31,2,1),(65,2,2,'9',32,2,1),(66,2,2,'6',33,2,1),(67,2,2,'6',34,2,1),(68,2,2,'8',35,2,1),(69,2,2,'8',36,2,1),(70,2,2,'8',37,2,1),(71,3,2,'9',28,2,1),(72,3,2,'7',29,2,1),(73,3,2,'6',30,2,1),(74,3,2,'9',31,2,1),(75,3,2,'7',32,2,1),(76,3,2,'9',33,2,1),(77,3,2,'10',34,2,1),(78,3,2,'10',35,2,1),(79,3,2,'6',36,2,1),(80,3,2,'8',37,2,1),(81,4,2,'8',28,2,1),(82,4,2,'9',29,2,1),(83,4,2,'7',30,2,1),(84,4,2,'6',31,2,1),(85,4,2,'10',32,2,1),(86,4,2,'6',33,2,1),(87,4,2,'8',34,2,1),(88,4,2,'9',35,2,1),(89,4,2,'7',36,2,1),(90,4,2,'8',37,2,1),(91,5,2,'8',28,2,1),(92,5,2,'10',29,2,1),(93,5,2,'9',30,2,1),(94,5,2,'8',31,2,1),(95,5,2,'8',32,2,1),(96,5,2,'9',33,2,1),(97,5,2,'7',34,2,1),(98,5,2,'9',35,2,1),(99,5,2,'7',36,2,1),(100,5,2,'10',37,2,1);
/*!40000 ALTER TABLE `calificacion` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `materia`
--

DROP TABLE IF EXISTS `materia`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `materia` (
`idmateria` int(11) NOT NULL AUTO_INCREMENT,
`nombre_materia` varchar(45) DEFAULT NULL,
PRIMARY KEY (`idmateria`)
) ENGINE=InnoDB AUTO_INCREMENT=38 DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `materia`
--

LOCK TABLES `materia` WRITE;
/*!40000 ALTER TABLE `materia` DISABLE KEYS */;
INSERT INTO `materia` VALUES (1,'Espa¤ol I'),(2,'Matematicas I'),(3,'Ciencias I (Biologia)'),(4,'Geografia de maxico y el mundo'),(5,'Asignatura estatal'),(6,'Lengua extranjera I'),(7,'Tecnologia I'),(8,'Artes I'),(9,'Educacion fisica I'),(10,'Espa¤ol II'),(11,'Lengua extrajera II'),(12,'Matematicas II'),(13,'Ciencias II (Fisica)'),(14,'Tecnologia II'),(15,'Formacion civica y etica I'),(16,'Historia I'),(17,'Educacion fisica II'),(18,'Artes II'),(19,'Espa¤ol III'),(20,'Lengua extranjera III'),(21,'Matematicas III'),(22,'Ciencias III (Quimica)'),(23,'Historia II'),(24,'Formacion civica y etica II'),(25,'Tecnologia III'),(26,'Artes III'),(27,'Educacion fisica III'),(28,'Espa¤ol'),(29,'Matematicas'),(30,'Exploracion de la naturaleza y la sociedad'),(31,'Formacion civica y etica'),(32,'Educacion fisica'),(33,'Educacion Artistica'),(34,'Ciencias Naturales'),(35,'La entidad donde vives'),(36,'Geografia'),(37,'Historia');
/*!40000 ALTER TABLE `materia` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `nivel`
--

DROP TABLE IF EXISTS `nivel`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `nivel` (
`idnivel` int(11) NOT NULL AUTO_INCREMENT,
`tipo1` varchar(45) DEFAULT NULL,
PRIMARY KEY (`idnivel`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `nivel`
--

LOCK TABLES `nivel` WRITE;
/*!40000 ALTER TABLE `nivel` DISABLE KEYS */;
INSERT INTO `nivel` VALUES (1,'Preescolar'),(2,'Primaria'),(3,'Secundaria');
/*!40000 ALTER TABLE `nivel` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `status_alumno`
--

DROP TABLE IF EXISTS `status_alumno`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `status_alumno` (
`idstatus_alumno` int(11) NOT NULL AUTO_INCREMENT,
`tipo` varchar(45) DEFAULT NULL,
PRIMARY KEY (`idstatus_alumno`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `status_alumno`
--

LOCK TABLES `status_alumno` WRITE;
/*!40000 ALTER TABLE `status_alumno` DISABLE KEYS */;
INSERT INTO `status_alumno` VALUES (1,'activo'),(2,'inactivo');
/*!40000 ALTER TABLE `status_alumno` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `user`
--

DROP TABLE IF EXISTS `user`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `user` (
`id_user` int(11) NOT NULL,
`nombre` varchar(45) DEFAULT NULL,
`pass` varchar(45) DEFAULT NULL,
PRIMARY KEY (`id_user`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `user`
--

LOCK TABLES `user` WRITE;
/*!40000 ALTER TABLE `user` DISABLE KEYS */;
INSERT INTO `user` VALUES (1,'enrique','lugo');
/*!40000 ALTER TABLE `user` ENABLE KEYS */;
UNLOCK TABLES;


ese es el back up de mi base de datos
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
sin imagen de perfil
Val: 26
Ha aumentado 1 puesto en MySQL (en relación al último mes)
Gráfica de MySQL

error en consultas

Publicado por Andres (12 intervenciones) el 16/11/2016 05:26:48
Hola enrique, te cuento que me costo entender tu base de datos, algunos campos no se que significan, pero ahí te mando el sql. este lo hice sin JOIN, porque la verdad no se usarlo bien. Aunque se le puede agregar condiciones para filtrar, depende que es lo que quieras.
Y con respecto a los datos de tu DB, quisiera saber que significa el campo momento_ca de la tabla calificación, ya que existen grado y niveles con las mismas materias en los mismos grados y niveles, pero se diferencia por el campo momento_ca. Seria de gran importancia para aumentar un condición al final, por ejemplo: "ca.momento_ca=3".

Bueno, espero tu respuesta ante cualquier duda o para explicarte como lo hice, y por favor si el sql esta como lo quieres marca como respuesta, gracias.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
SELECT
	al.nombre AS "NOMBRE",
	al.apellido_p AS "APELLIDO P",
	al.apellido_m AS "APELLIDO M",
	ca.antecedentes_nivel_idnivel AS "NIVEL",
	ca.grado AS "GRADO",
	ma.nombre_materia AS "MATERIA",
	ca.calificacion AS "CALIFICACION"
FROM
	alumnos al,
	calificacion ca,
	materia ma
WHERE
	al.idalumnos=ca.antecedentes_alumnos_idalumnos AND
	ca.materia_idmateria=ma.idmateria AND
	al.idalumnos=1 AND
	ca.antecedentes_nivel_idnivel=2 AND
	ca.grado=2
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 enrique
Val: 23
Ha aumentado su posición en 3 puestos en MySQL (en relación al último mes)
Gráfica de MySQL

error en consultas

Publicado por enrique (10 intervenciones) el 16/11/2016 16:14:54
momento_ca es una calificacion del parcial, unidad o momento que curso el alumno dentro de un ciclo escolar o año escolar
te comento que son 5 momentos por ciclo o año escolar
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
sin imagen de perfil
Val: 26
Ha aumentado 1 puesto en MySQL (en relación al último mes)
Gráfica de MySQL

error en consultas

Publicado por Andres (12 intervenciones) el 17/11/2016 00:03:26
Ok, pero probaste la consulta, ???, solo tienes que agregar al select ca.momento_ca y te mostrará ese dato más. Si quieres algo más específico describir bien como quieres tu reporte
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 enrique
Val: 23
Ha aumentado su posición en 3 puestos en MySQL (en relación al último mes)
Gráfica de MySQL

error en consultas

Publicado por enrique (10 intervenciones) el 17/11/2016 16:10:39
si me funciono muy bien, gracias
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