none
Ayuda en Consulta SQL SemiCompleja RRS feed

  • Pregunta

  • Hola a todos compañeros tengo una duda referente a una consulta Sql.

    Tengo las siguientes tablas:

    Modulos: (Son cursos de tres meses que se dicta en donde trabajo.)

    MOD_codigo (PK)

    MOD_descripcion

    etc

     

    CAPACIDADES_TERMINALES (Tambien conocido como criterios de evaluacion)

    CAP_codigo (PK)

    MOD_codigo (FK) clave foranea, el Codigo de Modulo pasa como foranea

    CAP_descripcion

     

    Bien basicamente esa con mis tablas, obvio que faltan alumnos, matriculas, docentes, pero mi duda se centra en esas tablas.

     

    Quiero que en la primer columna me aparesca el apellido y nombre del alumno, y en el resto de columnas me salga los criterios de evaluacion del modulo en que esta matriculado el alumno.

    EJM:

    El alumno Luis Muñoz Hidalgo esta matriculado en el modulo de word, cuyo modulo tiene 3 criterios de evaluacion, que son, digita correctamente documentos, inserta imagenes correctamente, y el ultimo criterio es imprime documentos en forma adecuada.

    Entonces en mi consulta SQL quiero que me salga asi:

    Nombre         NombreCriterio 1 Nombre Criterio 2 Nombre Criterio 3

    Luis Muñoz

    Jorge Arteaga

    Garcia Luis

    Me dejo entender, basicamente quiero que los criterios me aparescan como columnas, y el nombre y apellido del alumno en forma normal como filas, quiero hacerlo de esta manera para que desde .NET pueda ingresar notas de dichos criterios. El numero de criterios puede variar depende al modulo, por eso las columnas que se van a mostrar en criterios varian, no son fijas.

    Espero me haya sabido explicar y puedan ayudarme.

     

     

     

     

     

     

    miércoles, 11 de mayo de 2011 23:10

Respuestas

  • No dices la versión de SQL Server que usas, pero como supongo que será 2005 o superior, puedes usar la cláusula PIVOT para transformar filas en columnas. Echa un vistazo a la información y ejemplos en http://msdn.microsoft.com/es-es/library/ms177410.aspx
    jueves, 12 de mayo de 2011 6:39