On Wed, May 28, 2008 at 4:33 PM, Luis Fernando Curiel Cabrera
<lcuriel(at)gmail(dot)com> wrote:
>
> Use la query que esta abajo y funciona, pero al momento de aplicarlo con la
> base de datos en producción es mucho muy lento. Ya que son más de 300000
> registros
> SELECT
> public.bssale.date,
> public.bssaledet.bsid_bsproduct,
> public.bssaledet.product,
> public.bssaledet.quantity
> FROM public.bssale INNER JOIN public.bssaledet ON public.bssale.bsid =
> public.bssaledet.bsid_bssale
> WHERE public.bssaledet.bsid = (
> SELECT MAX(bsid)
> FROM bssaledet saledet
> WHERE saledet.bsid_bsproduct = public.bssaledet.product
> )
[MIGUEL CANCHAS]Cuando tengo esa clase de problemas en algunos casos me funciona hacer una vista con los datos de donde filtrar
en tu caso pondria todo esto en una vista :
SELECT MAX(bsid) FROM bssaledet saledet WHERE saledet.bsid_bsproduct = public.bssaledet.product Y recien haria un inner join sobre lo primero : SELECTpublic
.bssale.date, public.bssaledet.bsid_bsproduct, public.bssaledet.product, public.bssaledet.quantity FROM public.bssale INNER JOIN public.bssaledet ON public.bssale.bsid = public.bssaledet.bsid_bssale INNER JOIN mi_vista on public.bssaledet.bsid = mi_vista.bsidAsi saldria mas o menos.
Miguel Canchas
[MIGUEL CANCHAS]