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

[SOLUCIONADO] Transformar columnas en Filas.

Estas en el tema de Transformar columnas en Filas. en el foro de SQL Server en Foros del Web. Hola todos bueno ojalá alguien me pueda ayudar e estado buscando como poder transformar columnas en filas en sql server 2005 y la verdad es ...
  #1 (permalink)  
Antiguo 11/02/2013, 13:25
 
Fecha de Ingreso: enero-2013
Mensajes: 41
Antigüedad: 11 años, 9 meses
Puntos: 0
Transformar columnas en Filas.

Hola todos bueno ojalá alguien me pueda ayudar e estado buscando como poder transformar columnas en filas en sql server 2005 y la verdad es que no me ha resultado mucho, e buscado y mirado pero definitivamente no me resulta hacerlo, un ejemplo de lo que busco... si es que alguien me puede ayudar o guiar...

RUT l ENERO l FEBRERO l MARZO l
1145600k l 150 l 200 l 500 l
15670080 l 300 l 150 l 400 l
18979520 l 450 l 148 l 250 l
1578900k l 320 l 120 l 300 l


y lo que quiero lograr es:

RUT l MES l MONTO l
1145600k l ENERO l 150 l
1145600k l FEBRERO l 200 l
1145600k l MARZO l 500 l
15670080 l ENERO l 300 l
1145600k l FEBRERO l 150 l

y así sucesivamente, como aporte deo decir que son como 6000 rut distintos y todos tienen valores de enero a diciembre...

espero que me puedan ayudar, se los agradecería realmente muucho, Saludos
  #2 (permalink)  
Antiguo 11/02/2013, 13:33
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: Transformar columnas en Filas.

tablas pivote :) busca informacion en google
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 12/02/2013, 05:32
 
Fecha de Ingreso: julio-2012
Ubicación: Israel
Mensajes: 360
Antigüedad: 12 años, 4 meses
Puntos: 40
Información Concuerdo con Libras

En esta caso se trata de UnPivot.
__________________
El Castellano no es mi lengua materna: discúlpenme por los errores gramaticales.
Mi blog
  #4 (permalink)  
Antiguo 12/02/2013, 07:39
 
Fecha de Ingreso: diciembre-2012
Mensajes: 83
Antigüedad: 11 años, 11 meses
Puntos: 4
Respuesta: Transformar columnas en Filas.

Hola amigo! no conozco mucho lo de las tablas pivot, pero mientras investigas acerca de ellas,
te daré una solución parche hasta que encuentres una mejor:

si tu tabla la tienes con esta estructura:
RUT l ENERO l FEBRERO l MARZO l
1145600k l 150 l 200 l 500 l
15670080 l 300 l 150 l 400 l
18979520 l 450 l 148 l 250 l
1578900k l 320 l 120 l 300 l

puedes hacer entonces el siguiente select:
select rut, mes = 'enero', monto = ENERO from tabla
union
select rut, mes = 'febrero', monto = FEBRERO from tabla
union
select rut, mes = 'marzo', monto = MARZO from tabla
order by rut, mes, monto

y asi sucesitavemte debes hacer el union con todos los meses,
puedes meter ese select en una nueva tabla y tendras tu tabla nueva como la quieres
no es la gran solución pero te servirá mientras tanto ;)

Saludos
  #5 (permalink)  
Antiguo 12/02/2013, 09:50
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 17 años, 4 meses
Puntos: 180
Respuesta: Transformar columnas en Filas.

No es con PIVOT, si no con UNPIVOT, vease el ejemplo:

Código SQL:
Ver original
  1. CREATE TABLE #MESES (RUT VARCHAR(50), ENERO INT, FEBRERO INT, MARZO INT)
  2.  
  3. INSERT INTO #MESES VALUES ('1145600k' , 150 , 200 , 500 )
  4. INSERT INTO #MESES VALUES ('15670080' , 300 , 150 , 400 )
  5. INSERT INTO #MESES VALUES ('18979520' , 450 , 148 , 250 )
  6. INSERT INTO #MESES VALUES ('1578900k' , 320 , 120 , 300 )
  7.  
  8.  
  9. /****************** UNPIVOT OPERATION *******************/
  10. SELECT   RUT,
  11.          MESES,
  12.          IMPORTE
  13. FROM     (SELECT *
  14.           FROM   #MESES) p
  15.          UNPIVOT
  16.          (IMPORTE
  17.           FOR MESES IN ( [ENERO],[FEBRERO],[MARZO]) ) AS unpvt
  18. ORDER BY RUT,
  19.          MESES;
__________________
MCTS Isaias Islas
  #6 (permalink)  
Antiguo 12/02/2013, 10:25
 
Fecha de Ingreso: enero-2013
Mensajes: 41
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Transformar columnas en Filas.

Muchas gracias por la ayuda...=)

Etiquetas: columnas, fila, server, sql, transformar
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 12:40.