使用最大值从Firebird DB中获取两行或更多行



我正在尝试使用max从查询中获取至少两行。我有一个获取所有客户汽车的查询,需要将其与上次服务日期和订单号相结合。

select
b.year,
b.class,
b.vin,
b.plates,
a.name,
a.street,
...
from cars b
left join customers a on a.id=b.customer

现在我需要得到这个订单的最后订单号和日期,并找到了使用获得最后日期的方法

(select max(x.order_date) from orders x where x.car=b.id)

如何在同一时间从同一张表中获取x.order_number?

如果我理解正确,你可以做这样的事情:

select g.year,
g.class,
g.vin,
g.plates,
g.name,
g.street,
g.maxID,
(select x.order_date from orders x where x.order_number = g.maxID) maxDate
from ( 
select b.year,
b.class,
b.vin,
b.plates,
a.name,
a.street,
(select max(x.order_number) from orders x where x.car=b.id) maxID
from cars b
left join customers a on a.id=b.customer
) g

我真的不知道这是否是更有效的方法,但我会做这项工作。

最新更新