Tabla Notas store procedure, grid

Soy nuevo en esto y espero que me comprendan! Les digo
estoy realizando un ingreso de notas en la tabla Notas (Cod_año, Cod_maestro, Cod_alumno, Cod_grado, Cod_curso, Cod_Seccion, nota1, nota2, nota3) y tengo tablas de asignación de alumnos y maestros
estoy haciendo store procedure enlazado con combobox para determinar el grado, curso y sección al que esta asignado el maestro, todo bien!
El problemas es con las notas, ejemplo nota1, 2,3,4!
El siguiente código me muestra los datos que deseo, o sea los alumnos asignados a los campos que se refieren al maestro!
create procedure NotasFin
@anio varchar(10), @grado varchar(10), @curso varchar(10), @seccion varchar(10)
As
select  distinct aa.Cod_Año, am.Cod_Maestro, aa.Cod_Alumno, aa.Cod_Grado, aa.Cod_Curso, aa.Cod_Seccion
from    Asignacion_Alumno aa inner join Ciclo_Escolar ce on aa.Cod_Año=ce.Cod_Año inner join
        Registro_Grados rg on aa.Cod_Grado=rg.Cod_Grado inner join Registro_Cursos rc on
        aa.Cod_Curso=rc.Cod_Curso inner join Secciones s     on aa.Cod_Seccion=s.Cod_Seccion,
        Asignacion_Maestro am inner join Registro_Grados on am.Cod_Grado=Registro_Grados.Cod_Grado
        inner join Registro_Cursos on am.Cod_Curso=Registro_Cursos.Cod_Curso inner join Secciones
        on am.Cod_Seccion=Secciones.Cod_Seccion inner join Ciclo_Escolar on am.Cod_Año=Ciclo_Escolar.Cod_Año
where aa.Cod_Año=@anio and aa.Cod_Grado=@grado and aa.Cod_Curso=@seccion and
        am.Cod_Año=@anio and am.Cod_Grado=@grado and am.Cod_Seccion=@seccion
obtengo  datos con que deseo llenar la tabla Notas, como veran ahora falta los campos Notas1,2,3
tengo que poner los campos de la tabla Notas, porque cuando haga el ingreso de la siguiente nota (nota2), tiene que aparecer la nota anterior(nota1) a cada alumno. Probe agragarla pero creo que por el inner join, ya no obtengo resultados o si obtengo se triplican los datos para cada alumno.
¿Cómo sería una forma de llamar las notas 1,2,3, para agregarlas junto a cada alumno?
¿Cuál sería otra alternativa? ¿El grid? ¿O cómo lo haría ustedes?

1 Respuesta

Respuesta
1
Que tal según veo tu problema se debe quizá a que estés haciendo mal los joins seria bacán si pones el script de las tablas involucradas y un ejemplo del resultado que quieres mostrar porque no lo tengo muy claro los datos que quieres visualizar
Hola amigo!
pues tengo asignacion alumno, con campos cod_alumno, cod_año, cod_curso, cod_grado, cod_seccion
tengo la  tabla asignacion_maestro con campos cod_maestro, cod_año, cod_curso, cod_grado, cod_seccion
todos los cod tienen sus respectivas tablas!
Y tengo la tabla notas, con los campos con llaves foranesas, cod_anio, cod_maestro, cod_alumno, cod_grado, cod_curso, cod_seccion, también en esta misma tabla los campos Nota1, Nota2, Nota3, Final, pueden ser null
-------------------------------------------------------
El maestro va a ingresar notas, debe loguearse, y en el combobox aparecen los años, cursos, grados, secciones a los que esta asignado, debe seleccionar lo que corresponde!
Eso creo que ya esta!
-------------------------------------
Ahora los alumnos: tengo en asignacion_alumnos:
cod_alumno:    cod_año   cod_grado  cod_curso cod_seccion
1 2010 1 2 2
2 2010 1 1-2-3 1
3 2010 2 1-2-3 1
-------------------------------------
Supongamos que el maestro esta asignado a lo que esta asignado el alumno=2
tiene que aparecer en el grid::
cod_alumno:    cod_año   cod_grado  cod_curso cod_seccion Nota1 Nota2 Nota3 Final
2                         2010            1                    2                 1        null     null    null      null
esto es lo que quiero, para que el maestro ingrese las notas,
------------------------------------------
Supongamos que el maestro esta asignado a lo que esta asignado el alumno=1
tiene que aparecer en el grid::
cod_alumno:    cod_año   cod_grado  cod_curso cod_seccion Nota1 Nota2 Nota3 Final
   1                       2010            1                    2                 2        null     null    null      null
esto es lo que quiero, para que el maestro ingrese las notas
-------------------------------------------
Después de esto guarda los datos, y en el próximo ingreso, aparecería las notas correspondientes a cada alumno
en el store procedure anterior obtengo con el select los alumnos que corresponden excepto las notas, porque cuando pongo la tabla Notas en el "From" y los campos nota1, 23, final en el "select", no obtengo nada, porque no tengo aun notas, el problema que tengo es llamar los campos notas1, 2,3, Final de la tabla notas!
Espero darme a entender!
Gracias y Saludos!
Hola amigo!
Creo que no podre' lograr esto solo con store procedure, porque tal vez me acepte la
primera ves los datos del area1, pero cuando ingrese al programa por segunda vez
intentado ingresar el area2, me duplicara algunos datos.
Por lo que voy a probar con un trigger que cuando asigne un alumno lo inserte en la tabla
notas.
De momento gracias y saludos a todos !
;)
Por lo que veo ese store es solo una consulta que devuelve al control los datos que hay en ese momento y de acuerdo a eso tu actualiza las notas y lo grabas (en este caso ya no haría un insert sino un update). Por lo que veo cuando registres las notas por primera vez solo te mostrara y esa primera vez tendrás que hacer un insert a la tabla notas si es que no existe la llave, caso contrario la inserta.
Esa estructura a mi parecer funcionaria ok si tienes todos los datos ahora otra cosa si cambian de 3 notas a 4 o 5 o + tendrás que modificar la estructura
recomendaría que la tabla nota tenga un solo campo para registra la nota y que manejes en otra tabla por decir la fórmula para calcular el promedio (imagino que las notas son de un mismo curso: examen1, examen2, trabajos) y estos te darán un promedio no necesariamente aritmético.
Pero si deseas por lo otro verificamos que la clave formada por codcurso, codprofe, codseccion y adicionalmente necesitarías poner un tipo de nota para que las tuplas sean distintas sino creara problemas
Gracias amigo por la respuesta!
Modifique un poco la tabla
Primero hay que asignar al maeastro : asigno año, grado, curso y sección al maestro en la tabla asignacion_maestro. Un maestro se asigna una sola vez al año, no puede haber dos maestros que den el mismo curso en la misma sección.
ahora como el alumno solo se le asigna una vez : le asigno, año, grado, seccion;
Ahora el trigger verifica el año, curso, sección que tiene los maestros y si es igual al que le acabo de asignar al alumno, hace el registro de la tabla notas. Llenando los campos correspondientes del año, codalumno, codmaestro, codseccion, codgrado, codcurso.
Los cursos son fijo en cada grado, así que solo verifica el grado y automáticamente asigna los cursos.
Ya esta, ya tengo la tabla notas como quiero
ahora con el store, como tu mencionas es una consulta que me devuelve en el grid!
Ahora que ya están los parámetros de acuerdo a lo que deseo que aparezca en dicho gird.
Pero ahora me encuentro con otro problemita que no aparece el método de update en el data table que se creo, tal vez porque es un store p,
o sea tengo el botón de grabar, y pongo:
TABLANOTATableAdapter. "update", en algunos casos así es más fácil
ya investigue y esta el
TABLANOTATableAdapter.Adapter.UpdateCommand pero no encuentro un ejemplo para crear la configuracion
?
Si fuera posible agradecería bastante si pudieran ayudarme con esto.
Gracias
Eso deseas implica que vas a llamarlo desde tu lenguaje de programación, la verdad yo manejo power builder y java si en esos lenguajes estas utilizando te podría ayudar...
Ok. Muchas gracias amigo!
Pero por ahora lo estoy haciendo en visual basic.net
No se si espero o doy el tema finalizado o lo traslado a vb.net
Saludos!
Si creo que lo cierras y lo mandas a VB.NET

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas