Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 11-07-2010
gonza_619 gonza_619 is offline
Miembro
 
Registrado: feb 2010
Posts: 157
Poder: 15
gonza_619 Va por buen camino
Post problema con consulta sql

hola a todos, bueno mi problema es que necesito hacer una consulta, y estas son mis tablas
ALUMNOS:NRO_ALUM,APYNOM.
MATERIAS:COD_MAT,NOMBRE,AÑO.
NOTAS:COD_ALUM,COD_MAT,NOTA,FECHA.

bien, lo que me pide la consulta es listar los nombres de los alumnos que aprobaron finales
bueno, utilizo en un form un dbgrid para mostrar el resultado,un tquery y en un tbutton intriduzco la consulta esta:

query1.SQL.Clear;
query1.SQL.add('select n.nota,a.apellido_nombre from notas as n');
query1.SQL.Add('inner join alumnos as a on (n.cod_alumno = a.cod_alumno) and (n.nota > 4)');
query1.Active:=true;
query1.Open;

el problema que me salta es: type mismatch in expression.'
no se que puede ser, el campo nota esta bien escrito, y si borro la parte de (n.nota > 4) me muestra el resultado sin problemas, que podria ser el error ? gracais
Responder Con Cita
  #2  
Antiguo 11-07-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.037
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Si no me he equivocado y el aprobado es una nota mayor de 4, entonces debe ser algo así:

Código SQL [-]
select a.apynom, m.nombre, n.nota 
from tbalumnos a
inner join notas n on n.cod_alum=a.nro_alum
inner join materias m on m.cod_mat=n.cod_mat
where n.nota>4
Responder Con Cita
  #3  
Antiguo 11-07-2010
gonza_619 gonza_619 is offline
Miembro
 
Registrado: feb 2010
Posts: 157
Poder: 15
gonza_619 Va por buen camino
consultas sql

hola, no lo he probado pero solo me interesa saber las notas, no el nombre de las materias, me funciona bien si saco la parte de : n.nota>4. pero cuando lo coloco me tira ese error. los campos estan bien relacionados.

PERDON, ERA MI ERROR QUE EL CAMPO NOTA ESTABA COMO ALFANUMERICO, POR LO TANTO SERIA N.NOTA>"4"
GRACIAS IGUALMENTE

Última edición por gonza_619 fecha: 11-07-2010 a las 21:11:55.
Responder Con Cita
  #4  
Antiguo 12-07-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.037
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Bueno, pues no pongas la materia:

Código SQL [-]
select a.apynom, n.nota
from tbalumnos a
inner join notas n on n.cod_alum=a.nro_alum
where n.nota>4
Responder Con Cita
  #5  
Antiguo 14-07-2010
gonza_619 gonza_619 is offline
Miembro
 
Registrado: feb 2010
Posts: 157
Poder: 15
gonza_619 Va por buen camino
Post problema con consulta sql

hola amigos, miren tengo una consulta q no me sale
tengo 3 tablas :
ALUMNOS: COD_ALUM, APE_NOMBRE
NOTAS: COD_ALUM,COD_MATERIA,FECHA,NOTA
(COD_ALUM,COD_MATERIA Y FECHA SON PKEY)
MATERIAS:COD_MATERIA,NOMBRE,AÑO

BIEN AHORA QUIERO SABER LOS ALUMNOS QUE APROBARON FINALES, PERO UN ALUMNO TIENE UN 2 EN UNA MATERIA Y UN 8 EN OTRA EN DISTINTA FECHA
YO EN LA CONSULTA PONGO=
SELECT A.APE_NOMBRE,N.NOTA FROM NOTA AS N
INNER JOIN ALUMNOS AS A ON (A.COD_ALUM=N.COD_ALUM) AND (NOTA>"4")

BIEN AHORA NO ME MUESTRA EL ALUMNO QUE SE SACO UN 2 EN UNA Y UN 8 EN OTRA YA QUE AL PARECER LO CONDICIONA EL 2
COMO PODRIA HACER , YA QUE APROBO UN FINAL Y LO TENDRIA QUE MOSTRAR, YA PROBE CON DISTINCT Y TAMPOCO SALIO
Responder Con Cita
  #6  
Antiguo 14-07-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.037
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Por favor, continúa en el otro hilo que iniciaste sobre este tema, gracias.


p.d.: voy a unir ambos hilos.
Responder Con Cita
  #7  
Antiguo 22-07-2010
Avatar de Jac fcc
Jac fcc Jac fcc is offline
Miembro
 
Registrado: ene 2010
Posts: 33
Poder: 0
Jac fcc Va por buen camino
Cita:
SELECT A.APE_NOMBRE,N.NOTA FROM NOTA AS N
INNER JOIN ALUMNOS AS A ON (A.COD_ALUM=N.COD_ALUM) AND (NOTA>"4")
intenta con esto:
Código Delphi [-]
SELECT A.APE_NOMBRE,SUM(N.NOTA)RESULTADO FROM NOTA AS N INNER JOIN ALUMNOS AS A  ON A.COD_ALUM=N.COD_ALUM INNER JOIN MATERIAS AS M ON M.COD_MATERIA=N.COD_MATERIA GROUP BY A.APE_NOMBRE HAVING RESULTADO > 10

Los inner permiten obtener todos los alumnos con sus respectivas notas de todas las materias.
el having comprueba que apruebe las materias (tomando en cuenta que la materia se aprueba con calificaciones mayores a 5, y en este ejemplo que son solo dos materias).
__________________
Para una vida sana hay que ocupar 30 de 24hrs diarias...Ups!
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Problema con consulta josi Varios 2 02-08-2008 18:12:46
problema con consulta cyber_zero SQL 1 26-06-2008 16:57:40
Problema con Consulta estebanx SQL 15 26-04-2007 00:19:40
problema con consulta sql Cosgaya SQL 4 16-01-2006 18:09:17
problema con consulta. jsanchez SQL 2 20-05-2003 19:35:55


La franja horaria es GMT +2. Ahora son las 16:46:39.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi