使用 max 从 Firebird DB 获取两行或更多行

问题描述 投票:0回答:1

我正在尝试使用 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?

sql select greatest-n-per-group firebird
1个回答
0
投票

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

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

我真的无法判断这是否是更有效的方法,但可以完成这项工作。

© www.soinside.com 2019 - 2024. All rights reserved.