From: | "Edwin Quijada" <listas_quijada(at)hotmail(dot)com> |
---|---|
To: | innenka(at)yahoo(dot)com |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: RV: Consulta SQL algo compleja |
Date: | 2004-12-14 14:22:45 |
Message-ID: | BAY1-F403E7CB2FB3156E04B0C74E3AC0@phx.gbl |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
A qe te refieres exactamente de como operan?
Se mas especifico, si te refieres a como trabajan pues creo q igual o mejor
q SQL Server, nunca lo he usado. :)
Se mas especifico y podremos ayudar mejor.
*-------------------------------------------------------*
*-Edwin Quijada
*-Developer DataBase
*-JQ Microsistemas
*-809-747-2787
* " Si deseas lograr cosas excepcionales debes de hacer cosas fuera de lo
comun"
*-------------------------------------------------------*
>From: innenka innenka <innenka(at)yahoo(dot)com>
>To: Leo Gamez CCD Desarrollo <desarrollo(at)ccdasesores(dot)e(dot)telefonica(dot)net>,
>pgsql-es-ayuda(at)postgresql(dot)org
>Subject: Re: RV: [pgsql-es-ayuda] Consulta SQL algo compleja
>Date: Tue, 14 Dec 2004 05:07:11 -0800 (PST)
>
>Fuera posible obtener información de como operan los
>procedimientos almacenados en Postgresql?
>
>Tenemos algunos en MS SQL Server 2000 y desamos
>migrarlos. Como debe de hacerse?
>
>Diego Tovar
>Colombia
>
>Gracias.
>
>
>
>--- Leo Gamez CCD Desarrollo
><desarrollo(at)ccdasesores(dot)e(dot)telefonica(dot)net> wrote:
>
> > Hola,
> >
> > Creo que existe una funcion en postgres para
> > detectar un valor nulo, es coalesce(). Tambien
> > funciona en mysql. Adjunto su explicacion de la
> > documentacion online. Buen provecho.
> >
> >
>http://www.postgresql.org/docs/7.4/static/functions-conditional.html
> >
> > 9.12.2. COALESCE
> >
> > COALESCE(value [, ...])
> >
> > The COALESCE function returns the first of its
> > arguments that is not null. Null is returned only if
> > all arguments are null. This is often useful to
> > substitute a default value for null values when data
> > is retrieved for display, for example:
> >
> > SELECT COALESCE(description, short_description,
> > '(none)') ...
> >
> > Like a CASE expression, COALESCE will not evaluate
> > arguments that are not needed to determine the
> > result; that is, arguments to the right of the first
> > non-null argument are not evaluated.
> >
> >
>------------------------------------------------------
> >
> > Saludos,
> >
> > Leo
> >
> > PD: Quiza alguien se ofenda porque puedo no
> > pertenecer a la lista de correo. Tuve problemas
> > cuando me suscribi, pero desde que Alvaro Herrera me
> > hecho una mano para arreglarlo, no he vuelto a
> > comprobar mi status. Sirva este correo para
> > comprobarlo.
> >
> > ________________________________
> >
> > De: pgsql-es-ayuda-owner(at)postgresql(dot)org en nombre de
> > Jaime Casanova
> > Enviado el: lun 13/12/2004 23:41
> > Para: pgsql-es-ayuda(at)postgresql(dot)org
> > Asunto: Re: [pgsql-es-ayuda] Consulta SQL algo
> > compleja
> >
> >
> >
> > --- Lynkx <lynkx(at)surnet(dot)cl> escribió:
> >
> > > SELECT DISTINCT
> > > s.cod_sucursal, s.nombre,
> > > (SUM(f.valor) - SUM(n.valor)) AS sum_valor
> > >
> > > FROM facturas f LEFT JOIN notas_credito n ON
> > > (f.num_fact = n.num_fact
> > > AND f.cod_sucursal = n.cod_sucursal), sucursales s
> > >
> > > WHERE f.cod_sucursal = s.cod_sucursal
> > >
> > > GROUP BY
> > > s.cod_sucursal, s.nombre
> > >
> > > Y devuelve lo sgte:
> > > 1 matriz 125
> > > 2 sede (no hay valor)
> > >
> >
> > 1) No se para que usas el distinct, de todas formas
> > ya
> > estas haciendo un group by y el efecto va a ser el
> > mismo. NO se si postgres sea lo suficientemente
> > pilas
> > para saber que eso esta de mas en todo caso sacalo.
> >
> > 2) Ahora tu problema, el segundo sum (el de la
> > sucursal 2) retorna null por que no hay notas de
> > credito en esa sucursal y cualquier valor sumado,
> > restado, multiplicado, dividido, etc, etc por null
> > se
> > hace NULL!!
> >
> > Solucion: en informix y en oracle hay una funcion
> > llamada nvl que se usaba para estos casos. dicha
> > funcion no existe en postgres y no se que mecanismo
> > han puesto para reemplazarla yo escribi una funcion
> > nvl para mi aqui te doy el codigo
> >
> > CREATE OR REPLACE FUNCTION "public"."nvl" (numeric,
> > numeric) RETURNS numeric AS'
> > select case when $1 is null then $2 else $1
> > end;
> > 'LANGUAGE 'sql' VOLATILE CALLED ON NULL INPUT
> > SECURITY
> > INVOKER;
> >
> > y tu select quedaria + o - asi:
> >
> > SELECT s.cod_sucursal, s.nombre, (SUM(f.valor) -
> > nvl(SUM(n.valor)), 0) AS sum_valor
> > FROM facturas f LEFT JOIN notas_credito n
> > ON (f.num_fact = n.num_fact AND
> > f.cod_sucursal = n.cod_sucursal),
> > sucursales s
> > WHERE f.cod_sucursal = s.cod_sucursal
> > GROUP BY s.cod_sucursal, s.nombre
> >
> >
> > Atentamente,
> > Jaime Casanova
> >
> >
>_________________________________________________________
> > Do You Yahoo!?
> > Información de Estados Unidos y América Latina, en
> > Yahoo! Noticias.
> > Visítanos en http://noticias.espanol.yahoo.com
> >
> > ---------------------------(end of
> > broadcast)---------------------------
> > TIP 6: ¿Has buscado en los archivos de nuestra lista
> > de correo?
> >
> >
> > http://archives.postgresql.org/pgsql-es-ayuda
> >
> >
> >
> > ---------------------------(end of
> > broadcast)---------------------------
> > TIP 10: visita nuestro canal de IRC #postgresql-es
> > en irc.freenode.net
> >
>
>
>
>
>__________________________________
>Do you Yahoo!?
>Yahoo! Mail - Helps protect you from nasty viruses.
>http://promotions.yahoo.com/new_mail
>
>---------------------------(end of broadcast)---------------------------
>TIP 5: ¿Has leído nuestro extenso FAQ?
>
> http://www.postgresql.org/docs/faqs/FAQ.html
_________________________________________________________________
Charla con tus amigos en línea mediante MSN Messenger:
http://messenger.latam.msn.com/
From | Date | Subject | |
---|---|---|---|
Next Message | Cristofer Nicolas Reyes Aguilera | 2004-12-14 14:47:56 | Re: Acentos en postgres |
Previous Message | Edwin Quijada | 2004-12-14 14:20:31 | Re: Acentos en postgres |