Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > PostgreSQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-05-2017
Avatar de gatosoft
[gatosoft] gatosoft is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Bogotá, Colombia
Posts: 833
Poder: 22
gatosoft Va camino a la fama
El problema debe estar en que no estan cruzando los valores que tienes guardados en el mes, versus la serie generada:

cuando generas la serie, las cataegorias que se arman son: 1,2,3...12

Asi que en tu tabla de descargas debes almacenar un valor numerico en el campo mes, 1 para enero, 2 para febrero y asi...

Este ejercicio a mi me funciona:

Código SQL [-]
create table Descargas2
( llave serial primary key,
  archivo varchar(10),
  mes integer,
  Total integer
);


insert into Descargas2 values(default, 'STARWARS',1,100);
insert into Descargas2 values(default, 'STARWARS',2,123);
insert into Descargas2 values(default, 'STARWARS',5,234);
insert into Descargas2 values(default, 'STARWARS',12,36);

insert into Descargas2 values(default, 'TITANIC',2,50);
insert into Descargas2 values(default, 'TITANIC',4,456);
insert into Descargas2 values(default, 'TITANIC',6,420);
insert into Descargas2 values(default, 'TITANIC',7,506);

SELECT * FROM crosstab(
'SELECT archivo, mes, total FROM descargas2 order by 1, 2', 
'SELECT m FROM generate_series(1,12) m' )
AS report (   archivo text, "Ene" text, "Feb" text, "Mar" text, "Abr" text, "May" text, "Jun" text, "Jul" text, "Ago" text, "Sep" text, "Oct" text, "Nov" text, "Dic" text  );


Por otro lado, si en el campo mes estas guardando valores tipo texto, entonces debes generar una serie tipo texto, asi:


Código SQL [-]
create table Descargas
( llave serial primary key,
  archivo varchar(10),
  mes varchar(10),
  Total integer
);


insert into Descargas values(default, 'STARWARS','ENERO',100);
insert into Descargas values(default, 'STARWARS','FEBRERO',123);
insert into Descargas values(default, 'STARWARS','MAYO',234);
insert into Descargas values(default, 'STARWARS','DICIEMBRE',36);

insert into Descargas values(default, 'TITANIC','FEBRERO',50);
insert into Descargas values(default, 'TITANIC','ABRIL',456);
insert into Descargas values(default, 'TITANIC','JUNIO',420);
insert into Descargas values(default, 'TITANIC','JULIO',506);

SELECT * FROM crosstab(
'SELECT archivo, mes, total FROM descargas order by 1, 2' 
,'SELECT elMes FROM (SELECT 1 orden, ''ENERO'' as elMes UNION SELECT 2, ''FEBRERO'' UNION SELECT 3, ''MARZO'' UNION SELECT 4, ''ABRIL'' UNION SELECT 5,''MAYO'' UNION SELECT 6, ''JUNIO'' UNION SELECT 7, ''JULIO'' UNION SELECT 8,''AGOSTO'' UNION SELECT 9,''SEPTIEMBRE'' UNION SELECT 10,''OCTUBRE'' UNION SELECT 11,''NOVIMEBRE'' UNION SELECT 12,''DICIEMBRE'' order by orden) C'
)
AS report (   archivo text, "Ene" text, "Feb" text, "Mar" text, "Abr" text, "May" text, "Jun" text, "Jul" text, "Ago" text, "Sep" text, "Oct" text, "Nov" text, "Dic" text  );

en el codigo anterior hay una "triquñuela" que se debe hacer adicional y es la de agregar el orden en el select para que respecte el orden ENERO =1 FEBRERO=2

Espero que te sirva
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Trasnformadas, crosstab, pivot, referencias cruzadas ... fjcg02 Firebird e Interbase 19 23-10-2018 10:07:23
Ayuda BD Access? Ayuda al modificar!! DarkArias Conexión con bases de datos 4 24-08-2013 23:47:41
ayuda con strtofloat, ayuda punto flotante TURING Varios 5 30-04-2004 08:03:59
Crosstab y fastreport IVAND Impresión 0 27-01-2004 18:12:09
Display format en Fast Report CrossTab nugame Impresión 0 19-12-2003 13:19:42


La franja horaria es GMT +2. Ahora son las 00:45:13.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi