Consulta - campos de una tabla como columnas

10/02/2005 - 17:53 por Matías | Informe spam
Hola grupo, lo que necesito hacer es pasar ciertos campos de una tabla como
columnas
utilizo el siguiente sp:
CREATE PROCEDURE pa_horarios_cursos(@IDCurso as char(3)) AS
SELECT HC.Curso, H.DesHasHora, D.Descripcion as Dia, M.Nombre as Materia
FROM HorariosCursos HC
INNER JOIN DescHorarios H ON HC.IDHorario = H.IDHorario
INNER JOIN Materias M ON HC.IDMateria = M.IDMateria
INNER JOIN Dias D ON HC.IDDia = D.IDDia
WHERE HC.Curso = @IDCurso

que me devulve resultados como estos:
CURSO DESHASHORA DIA MATERIA
1am 8:30 - 9:20 Lunes Ingles
1am 9:20 - 10:30 Martes Fisica

Yo lo que quiero hacer es que me devuelva:
DESHASHORA Lunes Martes
8:30 - 9:20 Ingles
9:20 - 10:30 Fisica

Busque en Google y vi que hablan de sql dinámico, la verdad nunca lo use y
quisiera poder resolver esto
sin sql dinámico, ya que muchos recomiendan no usarlo. Si no me queda otra
que sql-dinamico ¿como lo hago?

por las dudas pongo la estructura de las tablas
Materias DescHorarios Dias
-
*IdMateria *IdHorario *IdDia
*IdHorario DesHasHora Descripcion
Nombre

Saludos y mil gracias desde Cordoba-Argentina

Preguntas similare

Leer las respuestas

#1 Alejandro Mesa
10/02/2005 - 18:13 | Informe spam
Matías,

Usa tu query como una tabla derivada.


select
DesHasHora,
case when dia = 'lunes' then materia else '' end as Lunes,
case when dia = 'martes' then materia else '' end as Martes
from
(
SELECT HC.Curso, H.DesHasHora, D.Descripcion as Dia, M.Nombre as Materia
FROM HorariosCursos HC
INNER JOIN DescHorarios H ON HC.IDHorario = H.IDHorario
INNER JOIN Materias M ON HC.IDMateria = M.IDMateria
INNER JOIN Dias D ON HC.IDDia = D.IDDia
WHERE HC.Curso = @IDCurso
) as t
go


AMB

"Matías" wrote:

Hola grupo, lo que necesito hacer es pasar ciertos campos de una tabla como
columnas
utilizo el siguiente sp:
CREATE PROCEDURE pa_horarios_cursos(@IDCurso as char(3)) AS
SELECT HC.Curso, H.DesHasHora, D.Descripcion as Dia, M.Nombre as Materia
FROM HorariosCursos HC
INNER JOIN DescHorarios H ON HC.IDHorario = H.IDHorario
INNER JOIN Materias M ON HC.IDMateria = M.IDMateria
INNER JOIN Dias D ON HC.IDDia = D.IDDia
WHERE HC.Curso = @IDCurso

que me devulve resultados como estos:
CURSO DESHASHORA DIA MATERIA
1am 8:30 - 9:20 Lunes Ingles
1am 9:20 - 10:30 Martes Fisica

Yo lo que quiero hacer es que me devuelva:
DESHASHORA Lunes Martes
8:30 - 9:20 Ingles
9:20 - 10:30 Fisica

Busque en Google y vi que hablan de sql dinámico, la verdad nunca lo use y
quisiera poder resolver esto
sin sql dinámico, ya que muchos recomiendan no usarlo. Si no me queda otra
que sql-dinamico ¿como lo hago?

por las dudas pongo la estructura de las tablas
Materias DescHorarios Dias
-
*IdMateria *IdHorario *IdDia
*IdHorario DesHasHora Descripcion
Nombre

Saludos y mil gracias desde Cordoba-Argentina



Respuesta Responder a este mensaje
#2 Maxi
10/02/2005 - 18:14 | Informe spam
Hola, podrias hacer cross report, busca en los BOL que tienes varios
ejemplos


Salu2
Maxi


"Matías" escribió en el mensaje
news:
Hola grupo, lo que necesito hacer es pasar ciertos campos de una tabla
como
columnas
utilizo el siguiente sp:
CREATE PROCEDURE pa_horarios_cursos(@IDCurso as char(3)) AS
SELECT HC.Curso, H.DesHasHora, D.Descripcion as Dia, M.Nombre as Materia
FROM HorariosCursos HC
INNER JOIN DescHorarios H ON HC.IDHorario = H.IDHorario
INNER JOIN Materias M ON HC.IDMateria = M.IDMateria
INNER JOIN Dias D ON HC.IDDia = D.IDDia
WHERE HC.Curso = @IDCurso

que me devulve resultados como estos:
CURSO DESHASHORA DIA MATERIA
1am 8:30 - 9:20 Lunes Ingles
1am 9:20 - 10:30 Martes Fisica

Yo lo que quiero hacer es que me devuelva:
DESHASHORA Lunes Martes
8:30 - 9:20 Ingles
9:20 - 10:30 Fisica

Busque en Google y vi que hablan de sql dinámico, la verdad nunca lo use y
quisiera poder resolver esto
sin sql dinámico, ya que muchos recomiendan no usarlo. Si no me queda otra
que sql-dinamico ¿como lo hago?

por las dudas pongo la estructura de las tablas
Materias DescHorarios Dias
-
*IdMateria *IdHorario *IdDia
*IdHorario DesHasHora Descripcion
Nombre

Saludos y mil gracias desde Cordoba-Argentina


Respuesta Responder a este mensaje
#3 Matías
10/02/2005 - 20:07 | Informe spam
GRACIAS muchachos, voy probar.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida