From: | Juan Romero <jgromero(at)gmail(dot)com> |
---|---|
To: | Jose Alberto Sanchez Nieto <albertosanchez(at)hiperusera(dot)es> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: consulta realizacion de una select |
Date: | 2010-03-26 16:40:41 |
Message-ID: | 3c7410401003260940o58863294xcd072ed27610f572@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
2010/3/26 Jose Alberto Sanchez Nieto <albertosanchez(at)hiperusera(dot)es>:
> Hola a todos, estoy empezando con postgres y sql y me surge una duda en una
> consulta que supongo será fácil pero que me cuesta, tengo una TablaA y
> TablaB con la siguiente estructura:
> TablaA TablaB
> id integer primary key id integer primary key
> valor_compra numeric(12,2) valor_venta numeric(12,2)
> fecha Date fecha Date
> key integer key integer
>
> El caso es que quiero hacer una consulta que me devuelva una sola fila con
> los campos que necesito de cada tabla con las siguientes directrices:
> - El campo de unión de las dos tablas es key (se pasará como parámetro para
> realizar la unión)
> - Se pasará otro parámetro que será una fecha, puede que tanto la tablaA
> como la tablaB no tengan registro de esa fecha así que habría que
> recoger en ese caso el inmediatamente anterior en cada una de ellas
> Tal que la select me devuelva una sóla fila con los campos de las dos filas
> encontradas en las dos tablas, algo como:
> key, id, (valor_venta / valor_compra) as margen, fecha
> La unión es sencilla con:
> Select a.key, a.id as codigo, (valor_venta /valor_compra) as margen, fecha
> from TablaA as a, TablaB as b
> where a.key=b.key
AND a.fecha <= 'fecha_parametro' AND b.fecha <= 'fecha_parametro'
ORDER BY a.fecha DESC, b.fecha DESC
LIMIT 1;
pero a partir de aquí no sé muy bien como recuperar las
> filas de la tabla A y B sabiendo que pueden no tener ningún
> registro coincidente con la fecha pasada como parámetro y teniendo que
> recuperar el más cercano a él.
>
Si entendí bien, con eso lo resuelves, aunque no creo que ese diseño
que tienes sea muy bueno. En principio, no puedes garantizar que la
consulta te retorne una sola fila (por eso el limit) y tampoco puedes
garantizar que no ingreses registros de "ventas" que no tengan ninguna
relacion con alguna "compra"
Saludos,
Juan Gabriel Romero
Colombia
From | Date | Subject | |
---|---|---|---|
Next Message | Jose Alberto Sanchez Nieto | 2010-03-26 17:28:35 | Re: consulta realizacion de una select] |
Previous Message | Raúl Andrés Duque Murillo | 2010-03-26 16:33:11 | Re: permisos sobre triguer |