Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

hacer un horario un procedimiento q convierta columna en una fila

Estas en el tema de hacer un horario un procedimiento q convierta columna en una fila en el foro de SQL Server en Foros del Web. Select * from Tabla thorario Dia curso docente aula grupo hora 1 matematicas Rafael 415 2013eneroa 8-10 2 lenguaje manuel 418 2013eneroa 10-12 3 logistica ...
  #1 (permalink)  
Antiguo 09/01/2013, 09:36
 
Fecha de Ingreso: enero-2013
Ubicación: cusco
Mensajes: 13
Antigüedad: 11 años, 3 meses
Puntos: 0
hacer un horario un procedimiento q convierta columna en una fila

Select * from Tabla thorario
Dia curso docente aula grupo hora
1 matematicas Rafael 415 2013eneroa 8-10
2 lenguaje manuel 418 2013eneroa 10-12
3 logistica Rafael 419 2013eneroa 8-10
1 califrafia Rafael 200 2013febreroa 8-10

Termine asi mas o menos
grupo hora lunes martes miércoles jueves viernes
2013eneroa 8-10 matematica/Rafael/415 x logística/419/Rafael x x
2013eneroa 10-12 x lenguaje/418/manuel x x x
2013febreroa 8-10 caligrafia/Rafael/200 x x x x
Siendo dia 1-lunes 2-martes sucesivamente no se si hacerlo con cursor con tablas temporales por favor necesito ayuda en esto
  #2 (permalink)  
Antiguo 09/01/2013, 09:56
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: hacer un horario un procedimiento q convierta columna en una fila

busca informacion sobre las tablas pivote :)

saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 09/01/2013, 20:04
 
Fecha de Ingreso: enero-2013
Ubicación: cusco
Mensajes: 13
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: hacer un horario un procedimiento q convierta columna en una fila

Gracias por el dato estube investigando y logre hacer esto en forma de prueba pero no me sale varchar
select * from TSCHEDULE
ID DIA MES CURSO PROFE CLASE GRUPO CARRERA HORA
1 1 1 MATEMATICA MANUEL 142 ENERO01 ADM 1
4 3 1 INGLES JUAN 11 ENERO01 ADM 1
5 5 1 COMPU RUDDY 12 ENERO01 ADM 1
6 2 1 COMPU RUDDY 12 ENERO01 ADM 2

DECLARE @T TABLE (
HORA int NOT NULL,
Dia int NOT NULL,
MES int NOT NULL
);
INSERT INTO @T
select HORA,DIA,MES from TSCHEDULE
SELECT
HORA,
[1] AS lun,
[2] AS mar,
[3] AS mier,
[4] AS juev,
[5] AS vier
FROM
@T
PIVOT
(
SUM(MES)
FOR Dia IN ([1], [2], [3], [4], [5])
) AS P;

HORA lun mar mier juev vier
1 1 NULL 1 NULL 1
2 NULL 1 NULL NULL NULL

LISTO VACAN PERO QUIERO Q EL RELLENO SEA LETRAS (docente curso aula ) NO NUMEROS cambie elcodigo
DECLARE @T TABLE (
HORA int NOT NULL,
Dia int NOT NULL,
DOCENTE VARCHAR (100) NULL
);
INSERT INTO @T
select HORA,DIA,DOCENTE from TSCHEDULE
SELECT
HORA,
[1] AS lun,
[2] AS mar,
[3] AS mier,
[4] AS juev,
[5] AS vier
FROM
@T
PIVOT
(DOCENTE FOR Dia IN ([1], [2], [3], [4], [5])
) AS P;

Pero me sale error
Sintaxis incorrecta cerca de la palabra clave 'FOR'.
Quisiera saber porq
gracias antemano
  #4 (permalink)  
Antiguo 10/01/2013, 09:17
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: hacer un horario un procedimiento q convierta columna en una fila

si revisaste la documentacion la funcion pivot necesita una funcion de agregado, que en tu primer ejemplo la pusiste(sum()) ahora en el segundo ejemplo prueba poniendo un max(docente) sobre tu tabla.

saludos,
Libras
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Etiquetas: columna, fila, horario, procedimientos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:33.