From: | Gabriel Hermes Colina Zambra <hermeszambra(at)yahoo(dot)com> |
---|---|
To: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Hallar el Ultimo. una resolucion optima, pero no me parece la mejor. Sugerencias ? |
Date: | 2007-06-30 23:27:22 |
Message-ID: | 245183.53802.qm@web63712.mail.re1.yahoo.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Con la mente embotada por el cambio de legislacion
fiscal en Uruguay y despues de dejar pronto para el
lunes instalados muchos script en la casa de mis
clientes, me vine a casa a ver una consulta con el
siguiente problema.
Tengo una tabla con cabezales, lineas de documentos y
tipo de documentos.
Mediante join necesito averiguar en los articulos de
las lineas de compras cual es la fecha maxima en el
cabezal y que ID tiene.
Hacer max(id_cab) y max(fecha) no era una solucion
valida puesto que podian no ser coinsidentes si una
compra se ingreso despues con una fecha menor.
Asi que despues de resolverlo con subconsulta y
obtener un tiempo de respuesta poco optimo lo resolvi
de esta manera.
El chequeo de resultados parece funcionar muy bien y
la velocidad de respuesta es excelente con 280000
lineas y 130000 cabezales aprox.
El tema es que lo resolvi como a continuacion lo
describo y no me termina de convencer a pesar de que
me funciona muy bien.
SELECT DISTINCT ON (documentos.id_articulo)
documentos.id_articulo,
cabezales.id_cab, max(cabezales.fecha) AS
ultima_compra
FROM ((central.cabezales JOIN central.tipo_documentos
ON
((cabezales.id_documentos =
tipo_documentos.id_documentos))) JOIN
central.documentos ON ((cabezales.id_cab =
documentos.id_cab)))
WHERE ((tipo_documentos.compras)::text = '+'::text)
GROUP BY documentos.id_articulo, cabezales.id_cab
ORDER BY documentos.id_articulo, cabezales.id_cab
DESC;
Acepto sugerencias para ver una mejor opcion, si no la
hay, igual estoy muy conforme por los resultados.
Gracias Lista.
Atte.
Gabriel Hermes Colina Zambra.
__________________________________________________
Correo Yahoo!
Espacio para todos tus mensajes, antivirus y antispam ¡gratis!
Regístrate ya - http://correo.espanol.yahoo.com/
From | Date | Subject | |
---|---|---|---|
Next Message | Mario Gonzalez | 2007-06-30 23:39:15 | Re: Hallar el Ultimo. una resolucion optima, pero no me parece la mejor. Sugerencias ? |
Previous Message | Mario Gonzalez | 2007-06-30 22:28:21 | Re: consulta sobre unicode - Alvaro imperdonable |