Subject Re: [firebird-support] Subselect in SP
Author Svein Erling Tysvaer
Simple Jorge,

select min(FACTURAS.FECHA)
FROM ITEMS_FACTURAS
JOIN FACTURAS ON ITEMS_FACTURAS.ID_FACTURA = FACTURAS.ID_FACTURA
AND ITEMS_FACTURAS.SUCURSAL = FACTURAS.SUCURSAL
WHERE FACTURAS.SUCURSAL=1 AND ITEMS_FACTURAS.CODIGO_PRODUCTO=31344

No need to do simple things the complex way!
Set

Jorge Andrés Brugger wrote:
> Hello all.
>
> I have this sentence:
>
> select first 1 fecha from (
> SELECT FACTURAS.SUCURSAL, ITEMS_FACTURAS.CODIGO_PRODUCTO, FACTURAS.FECHA
> FROM ITEMS_FACTURAS INNER JOIN FACTURAS ON
> (ITEMS_FACTURAS.ID_FACTURA = FACTURAS.ID_FACTURA) AND
> (ITEMS_FACTURAS.SUCURSAL = FACTURAS.SUCURSAL)
> GROUP BY FACTURAS.SUCURSAL, ITEMS_FACTURAS.CODIGO_PRODUCTO,
> FACTURAS.FECHA
> HAVING FACTURAS.SUCURSAL=1 AND ITEMS_FACTURAS.CODIGO_PRODUCTO=31344)
> order by fecha
>
> It works ok in isql. But, I cannot use it inside of an Stored Procedure
> (select ... from (select) not supported).
>
> Firebird doesnt support neither something like:
>
> SELECT FACTURAS.SUCURSAL, ITEMS_FACTURAS.CODIGO_PRODUCTO, First 1
> FACTURAS.FECHA
> FROM ITEMS_FACTURAS INNER JOIN FACTURAS ON (ITEMS_FACTURAS.ID_FACTURA =
> FACTURAS.ID_FACTURA) AND (ITEMS_FACTURAS.SUCURSAL = FACTURAS.SUCURSAL)
> GROUP BY FACTURAS.SUCURSAL, ITEMS_FACTURAS.CODIGO_PRODUCTO
> HAVING (((FACTURAS.SUCURSAL)=1) AND
> ((ITEMS_FACTURAS.CODIGO_PRODUCTO)=31344))
> ORDER BY FACTURAS.FECHA;
>
> How can I do that query from inside a Stored Procedure? (I need to know
> the lowest "fecha" from a specific "sucursal" and "codigo_producto")
>
> Thanks!