Re: Query muy complicada

From: Mario Soto Cordones - Venezuela <msotocl(at)gmail(dot)com>
To: Alvaro Herrera <alvherre(at)surnet(dot)cl>
Cc: pgsql-es postgresql <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Query muy complicada
Date: 2005-06-09 20:52:55
Message-ID: e9b17cde050609135218215af5@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

El 9/06/05, Alvaro Herrera<alvherre(at)surnet(dot)cl> escribió:
> On Thu, Jun 09, 2005 at 04:13:07PM -0400, Mario Soto Cordones - Venezuela wrote:
>
> > select a.va_dm
> > from contabilidad.sahidep a, crosstab(' ... ')
> > AS ( codigo varchar, empresa integer, filial integer, nombre
> > varchar, nb_filial varchar,
> > nb_ubicacion varchar, co_contable varchar, co_tecnico
> > varchar, "ANCHO MTS." varchar ,"AREA M2" varchar
> > ,"LARGO MTS." varchar ,"TIPO DE PROPIEDAD" varchar ,"TOMO" varchar )
> >
> > Where
> > a.co_empresa = b.empresa and
> > a.co_filial = b.filial and
> > a.co_codigo = b.codigo
> >
>
> > Tampoco me funciona ya que la funcion crostab requiere una lista de
> > columnas ya que ella retorna un record
>

este es el query modificado :

select va_vneto
from contabilidad.sahidep a,
crosstab('select codigo, empresa, filial, nombre,
samafilial.nb_filial, samaubi.nb_ubicacion,co_contable, co_tecnico,
descampo, valor_campo from _vasaf_systbl_1 ,
samafilial , samaubi, activos
where _vasaf_systbl_1.id_estado = ''SA'' and empresa =1 and
_vasaf_systbl_1.empresa = samafilial.co_empresa and
_vasaf_systbl_1.filial = samafilial.co_filial and
_vasaf_systbl_1.empresa = activos.co_empresa and
_vasaf_systbl_1.codigo = activos.nu_activo_fijo and
_vasaf_systbl_1.empresa = samaubi.co_empresa and
_vasaf_systbl_1.filial = samaubi.co_filial and
_vasaf_systbl_1.ubicacion = samaubi.co_ubicacion AND
modelo =4 And filial = 2
group by codigo, empresa, filial, nombre,
samafilial.nb_filial, samaubi.nb_ubicacion,co_contable, co_tecnico,
descampo , valor_campo
order by 1',
'select ''ANCHO MTS.'' union all select ''AREA M2''
union all select ''LARGO MTS.'' union all select ''TIPO DE PROPIEDAD''
union all select ''TOMO'' ') as
( codigo varchar, empresa integer, filial integer,
nombre varchar, nb_filial varchar, nb_ubicacion varchar, co_contable
varchar, co_tecnico
varchar, "ANCHO MTS." varchar ,"AREA M2" varchar
,"LARGO MTS." varchar ,"TIPO DE PROPIEDAD" varchar ,"TOMO" varchar )
c


where
a.co_empresa = empresa and
a.co_filial = filial and
a.co_codigo = codigo

> Eso es lo que le estarias entregando con la clausula AS, no es asi?.
> Pero no veo de donde inventaste ese "b" en el WHERE. No es muy amable
> de tu parte no mostrar el mensaje de error en todo caso.

Este es el error
ERROR: error de sintaxis en o cerca de «c» en carácter 1448

>
> En todo caso creo que tratar de hacer una correlacion entre un crosstab
> y otros valores del registro te van a complicar infinitamente. Yo que
> tu, me desharia del crosstab y usaria una consulta comun y corriente.
>

No puedo prescindir de esta funcion ya que necesito crear una especie
de matriz traspuesta de datos,, y es una solucion muy eficiente en
todo sentido para lo que necesito, pero ahora me topo con el problema
que necesito agregarle las columnas antes mencionadas

> --
> Alvaro Herrera (<alvherre[a]surnet.cl>)
> "Some men are heterosexual, and some are bisexual, and some
> men don't think about sex at all... they become lawyers" (Woody Allen)
>

--
cordialmente,

Ing. Mario Soto Cordones

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2005-06-09 21:11:07 Re: Query muy complicada
Previous Message Alvaro Herrera 2005-06-09 20:29:13 Re: Query muy complicada