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

Girar consulta (pivotera)

Estas en el tema de Girar consulta (pivotera) en el foro de Oracle en Foros del Web. @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Javascript : Ver original [ HIGHLIGHT = "SQL" ] [/HIGHLIGHT]HOLA QUE TAL, ESPERO ESTEN TODOS BIEN. Quiero girar mi consulta para no ...
  #1 (permalink)  
Antiguo 30/04/2010, 11:30
 
Fecha de Ingreso: mayo-2008
Mensajes: 51
Antigüedad: 12 años, 5 meses
Puntos: 2
Pregunta Girar consulta (pivotera)

Código Javascript:
Ver original
  1. [HIGHLIGHT="SQL"]
[/HIGHLIGHT]HOLA QUE TAL, ESPERO ESTEN TODOS BIEN.

Quiero girar mi consulta para no estar usando el "Transponer en Excel", me meti un poco a la web pero no me ayuda mucho. mi inf esta asi.

NONOMBRE PUESTO PLAZA Sueldo
1 Juan Jefe Base 18,000
2 Pedro Subjefe Confianza 10,000


Yo necesito

PLAZA BASE PLAZA CONFIANZA
1 2
Juan Pedro
Jefe Subjefe
Base Confianza
18000 10,000

Logro hacerlo con un case Pero solo logro girar un solo campo, mas de un campo ya no.

Agradesco su ayuda. Saludos

Última edición por ADANSUAVE; 30/04/2010 a las 11:36
  #2 (permalink)  
Antiguo 03/05/2010, 10:41
 
Fecha de Ingreso: enero-2007
Ubicación: Cali - Valle
Mensajes: 135
Antigüedad: 13 años, 9 meses
Puntos: 4
Respuesta: Girar consulta (pivotera)

Hola, Buen día...


Creo que lo que necesitas es utilizar la instrucción pivot que viene en Oracle 11g, te dejo el link de la pagina donde encontre por primera vez esa instrucción, ademas explica con ejemplos como funciona.

Enlace



Scooby
  #3 (permalink)  
Antiguo 04/05/2010, 00:20
 
Fecha de Ingreso: junio-2007
Mensajes: 891
Antigüedad: 13 años, 4 meses
Puntos: 43
Respuesta: Girar consulta (pivotera)

Buen aporte Scooby ¡¡¡¡¡

Directo a mi directorio de sql's utiles.

Saludos ¡¡¡
  #4 (permalink)  
Antiguo 04/05/2010, 08:06
 
Fecha de Ingreso: enero-2007
Ubicación: Cali - Valle
Mensajes: 135
Antigüedad: 13 años, 9 meses
Puntos: 4
Respuesta: Girar consulta (pivotera)

Buen día...


Primero que todo darte Muchas gracias jc3000 por tus comentarios, eso (ademas de mi trabajo) hace que siga buscando cosas nuevas de oracle. Lo segundo es que toca aclarar es que esta instrucción solo funciona con Oracle 11g o superiores, es decir que si la BD es inferior toca hacer uso de la siguiente:


Código SQL:
Ver original
  1. MAX(decode(CVJ_CO_INV_PAC_UEN_VNTAS_DIA.SubInventario(cod_item,org_code,SubInv,to_date('|| chr(39)||to_char(p_fec_ini_per,'DD/MM/YYYY') || chr(39)||','|| chr(39)||'DD/MM/YYYY'|| chr(39)||'),to_date('|| chr(39)||to_char(p_fec_final_per,'DD/MM/YYYY')|| chr(39)||','|| chr(39)||'DD/MM/YYYY'|| chr(39)||')),'''||inv.subinventario||''',round(CVJ_CO_INV_PAC_UEN_VNTAS_DIA.Cant_SubInv(cod_item, subinv,org_code,to_date('|| chr(39)||to_char(p_fec_ini_per,'DD/MM/YYYY') || chr(39)||','|| chr(39)||'DD/MM/YYYY'|| chr(39)||'),to_date('|| chr(39)||to_char(p_fec_final_per,'DD/MM/YYYY')|| chr(39)||','|| chr(39)||'DD/MM/YYYY'|| chr(39)||')),3),0)) "'||inv.subinventario||'[40]",''|'',';



Este codigo lo utilice en un reporte ya que la BD en la que trabajo es 10g para hacer lo mismo que tu tratas de hacer.


Scooby

Última edición por scooby151; 15/06/2010 a las 15:54
  #5 (permalink)  
Antiguo 04/05/2010, 09:34
 
Fecha de Ingreso: junio-2007
Mensajes: 891
Antigüedad: 13 años, 4 meses
Puntos: 43
Respuesta: Girar consulta (pivotera)

Nosotros tenemos una 10g, pero supongo que no tardaremos mucho en subirla a la 11.

Todas estas cosas que voy encontrando por toda la red me las voy guardando en mi disco por si algún dia me hacen falta. La mayoría es dificil que las use,son de programación y yo hace ya tiempo que dejé de tirar codigo, pero no viene mal tenerlas por si algún dia me hacen falta o les puede servir a mis compañeros.

Un saludete y de nuevo gracias por tus aportes.

Etiquetas: girar
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:24.