amigos ayuda con consulta SQL SERVER
#1
Escrito 23 noviembre 2011 - 10:02
Por ejemplo:
Tabla1
Id_notas
n1
n2
n3
n4
Id_estudiantes FK
entonces Tabla 2 tiene:
id_estudiante
nombre
apellido
como ven hay una relación de tabla 1 Id_estudiante a Tabla 2 Id_estudiante, como ven la tabla1 me guarda el ID de la tabla estudiante, yo quiero ahora mostrar en un consulta con otro formulario que en vez de mostrar el numero del Id También se muestre el nombre del estudiante.
espero que me entiendas
#2
Escrito 23 noviembre 2011 - 10:08
select tabla1.*, tabla2.nombre, tabla2.apellido
from
tabla1
inner join tabla2 on tabla2.id_estudiante = tabla1.id_estudiante
Lo que hace la consulta es unir las dos tablas a través de la llave foránea id_estudiante, si mostramos el resultado de la consulta en un dbgrid te mostrará la información seleccionada de ambas tablas...
Saludox !
#3
Escrito 23 noviembre 2011 - 10:18
Tabla nota
id_notas
matricula FK (Id_matricula
n1
n2
n3
n4
promedio
matricula:
id_matricula PK
estudiantes
profesor
curso
fecha
lo que me interesa es que en el formulario de notas yo pueda ver los nombre del estudiantes, profesor, curso, ya que tengo una relacion id_matricula.
#4
Escrito 23 noviembre 2011 - 11:04
SELECT
N.*,
M.estudiantes,
M.profesor,
M.curso
FROM notas N
INNER JOIN matricula M ON M.id_matricula = N.matricula
Salud OS
#5
Escrito 23 noviembre 2011 - 11:24
#6
Escrito 23 noviembre 2011 - 11:32
amigos me da error de conexion del adoquery con el codigo que me pasaste
Checa que los nombres de las tablas y de los campos sean los correctos, esa es una sentencia SQL básica que no debería de fallar.
SaludOS
#7
Escrito 24 noviembre 2011 - 03:06
amigos me da error de conexion del adoquery con el codigo que me pasaste
Cuando, ¿ al abrir la consulta, al modificar datos, ... ?.
¿ Cual es el mensaje de error completo ?, ¿ seguro que no te da alguna pista de lo que está fallando ?.
Saludos.
#8
Escrito 24 noviembre 2011 - 08:11
Mens. 4104, Nivel 16, Estado 1, Línea 8
El identificador formado por varias partes "M.id_matricula" no se pudo enlazar.
Mens. 207, Nivel 16, Estado 1, Línea 8
El nombre de columna 'matricula' no es válido.
Mens. 4104, Nivel 16, Estado 1, Línea 3
El identificador formado por varias partes "M.estudiantes" no se pudo enlazar.
Mens. 4104, Nivel 16, Estado 1, Línea 4
El identificador formado por varias partes "M.profesor" no se pudo enlazar.
Mens. 4104, Nivel 16, Estado 1, Línea 5
El identificador formado por varias partes "M.curso" no se pudo enlazar.
#9
Escrito 24 noviembre 2011 - 08:22
Utiliza otros alias (parece haber algún conflicto con los alias escogidos) :
SELECT
NO.*,
MA.estudiantes,
MA.profesor,
MA.curso
FROM notas AS NO
INNER JOIN matricula AS MA ON MA.id_matricula = NO.matricula
O simplemente, no uses ningún alias :
SELECT
notas.*,
matricula.estudiantes,
matricula.profesor,
matricula.curso
FROM notas
INNER JOIN matricula ON matricula.id_matricula = notas.matricula
Saludos.
#10
Escrito 24 noviembre 2011 - 08:31
Salud OS
#11
Escrito 24 noviembre 2011 - 08:41
Archivos adjuntos
#12
Escrito 24 noviembre 2011 - 09:56
SELECT
estudiante.nombre,
estudiante.apellido,
matricula.profesor,
matricula.curso,
notas.DP
notas.CP
FROM estudiante
LEFT OUTER JOIN matricula ON matricula.id_estudiante = estudiante.id_estudiante
LEFT OUTER JOIN notas ON notas.id_matricula = matricula.id_matricula
Si eto no funciona no se que tengas mal en la construccion de tus tablas.
Salud OS
#13
Escrito 24 noviembre 2011 - 10:53
SELECT
estudiante.nombre,
estudiante.apellido,
matricula.id_profesor,
matricula.id_curso,
notas.DP,
notas.CP,
notas.AP,
notas.MP
FROM estudiante
LEFT OUTER JOIN matricula ON matricula.id_estudiante = estudiante.id_estudiante
LEFT OUTER JOIN notas ON notas.id_matricula = matricula.id_matricula
#14
Escrito 24 noviembre 2011 - 11:01
mira mostrare mi tablas con su relaciones porque lo quiero hacer un formulario de notas pero que parezcan el nombre del profesor y del estudiante y el curso desde el formulario notas: miren la imagen:
Archivos adjuntos
#15
Escrito 24 noviembre 2011 - 11:11
pero tengo un pequeño inconveniente porque el profesor no aparece el nombre del profesor sale como campo null,
mira mostrare mi tablas con su relaciones porque lo quiero hacer un formulario de notas pero que parezcan el nombre del profesor y del estudiante y el curso desde el formulario notas: miren la imagen:
Deberías de intentar modificar el query que ya se te dió, no estás usando la lógica ni el sentido común y francamente nos estás dando la información a cuenta gotas, en buen plan, a nadie le sirve más que a tí aprender a hacerlo.
Salud OS
#16
Escrito 25 noviembre 2011 - 04:37
#17
Escrito 25 noviembre 2011 - 04:41
SELECT
estudiante.nombre,
estudiante.apellido,
matricula.id_profesor,
profesor.nombre As Profesor,
matricula.id_curso,
notas.DP,
notas.CP,
notas.AP,
notas.MP
FROM estudiante
LEFT OUTER JOIN matricula ON matricula.id_estudiante = estudiante.id_estudiante
LEFT OUTER JOIN profesor ON profesor.id_profesor = matricula.id_profesor
LEFT OUTER JOIN notas ON notas.id_matricula = matricula.id_matricula
where profesor.id_profesor = profesor.id_profesor
#18
Escrito 25 noviembre 2011 - 04:57
seria algo asi:
SELECT
estudiante.nombre,
estudiante.apellido,
matricula.id_profesor,
profesor.nombre As Profesor,
matricula.id_curso,
notas.DP,
notas.CP,
notas.AP,
notas.MP
FROM estudiante
LEFT OUTER JOIN matricula ON matricula.id_estudiante = estudiante.id_estudiante
LEFT OUTER JOIN profesor ON profesor.id_profesor = matricula.id_profesor
LEFT OUTER JOIN notas ON notas.id_matricula = matricula.id_matricula
where profesor.id_profesor = profesor.id_profesor
El sistema lo debería aceptar perfectamente. En el WHERE puedes añadir condiciones para cualquiera de las tablas enlazadas en la consulta.
Pero no va a hacer nada, dado que profesor.id_profesor siempre va a ser igual a profesor.id_profesor, puesto que es él mismo (es como poner un where 1 = 1, va a aceptar todos los registros).
Saludos.
#19
Escrito 25 noviembre 2011 - 05:45
Archivos adjuntos
#20
Escrito 26 noviembre 2011 - 07:15
Miren ya tengo mi tabla creada ahora necesito que al hacer click en grid me abra un formulario para ponerla notas, que son 4, y me gustaria saber, dejo una imagen para que vean a que me refiero:
Deberías abrir un nuevo hilo con esta pregunta, ya que no tiene que ver con la pregunta original, que podemos dar por resuelta.
NOTA: Considera entrar las 4 notas directamente desde la Grid, en lugar de abrir una pantalla nueva.
Saludos.