Subject | Way to avoid many subselects |
---|---|
Author | Fabiano Bonin |
Post date | 2007-07-17T19:02:53Z |
Hi all,
Look at this query. I want to get the last invoice of each customer:
select
( select first 1 id from invoices inv where inv.customer_id =
cus.customer_id order by inv.id desc )
( select first 1 inv_date from invoices inv where inv.customer_id =
cus.customer_id order by inv.id desc )
( select first 1 number from invoices inv where inv.customer_id =
cus.customer_id order by inv.id desc )
( select first 1 ship_date from invoices inv where inv.customer_id =
cus.customer_id order by inv.id desc )
from
customers cus
Is there a way to get the same result as the query above, but
introducing the table "invoices" in the "from" clause and avoiding
these subselects?
Something like this:
select
inv.id,
inv.date,
inv.number,
inv.ship_date
from
customers cus
inner join *** insert invoices here somehow to return only the last
invoce for each customer ***
Regards,
Fabiano.
Look at this query. I want to get the last invoice of each customer:
select
( select first 1 id from invoices inv where inv.customer_id =
cus.customer_id order by inv.id desc )
( select first 1 inv_date from invoices inv where inv.customer_id =
cus.customer_id order by inv.id desc )
( select first 1 number from invoices inv where inv.customer_id =
cus.customer_id order by inv.id desc )
( select first 1 ship_date from invoices inv where inv.customer_id =
cus.customer_id order by inv.id desc )
from
customers cus
Is there a way to get the same result as the query above, but
introducing the table "invoices" in the "from" clause and avoiding
these subselects?
Something like this:
select
inv.id,
inv.date,
inv.number,
inv.ship_date
from
customers cus
inner join *** insert invoices here somehow to return only the last
invoce for each customer ***
Regards,
Fabiano.