> -----Mensaje original-----
> De: [email protected]
> [mailto:[email protected]] En nombre de
> Jose Alberto Sanchez Nieto
> Enviado el: Miércoles, 07 de Abril de 2010 12:35
> Para: [email protected]
> Asunto: Re: [pgsql-es-ayuda] duda en la realizacion de una consulta
>
> Gracias Fernando por responder, la tabla de compras es una
> dimensión de un datawarehouse y las dimensiones siempre
> tienen "vigencia" del registro en cuestión de ahí lo de
> fecha_desde y fecha_hasta. La posibilidad que me envías
> también la realicé antes pero ahora las especificaciones que
> me han dado son que se tiene que realizar en una consulta (de
> hecho devuelvo la fila con setof record en la función), deben
> ser con una consulta ya que puede ser llamada desde una
> herramienta de reportes y ahí sólo se le puede indicar
> consultas y no funciones.
> Muchas gracias.
>
La función que te pasé la puedes adecuar para retorne un registro si ese es
el problema.
De todas maneras existe otra salida fácil aunque poco elegante:
SELECT v_key_articulo,
( -- ventas
SELECT coalesce(cantidad, 0) FROM ventas
WHERE fecha <= v_fecha
AND key_articulo = v_key_articulo
ORDER BY fecha DESC LIMIT 1
)::integer -
( -- compras
SELECT coalesce(cantidad, 0) FROM compras
WHERE v_fecha BETWEEN fecha_desde AND fecha_hasta
AND key_articulo = v_key_articulo
)::integer
Si esto tampoco es lo que estás buscando en ese caso te sugiero estudies el
full outer join:
http://www.postgresql.org/docs/8.4/interactive/queries-table-expressions.htm
l
Saludos,
--
TIP 10: no uses HTML en tu pregunta, seguro que quien responda no podrá leerlo