我想检索具有“PNRno”列的最大值的行,其中 PNRno 是 Tktrsrv 的主键并且与多个表有关联。代码写成:
Select
PNRcd,PNRno, Tktno, Tno, Tname, Doj, Class, brding, rsrvdupto
from Tktrsrv
GROUP BY PNRno
Having PNRno= Max(PNRno);
请帮我。
使用时GROUP BY
,您不能使用列列表中未聚合或未在GROUP BY
子句中提及的任何列。
如果你只想选择 PNRno 最大值的那一行,你甚至不需要GROUP BY
; 使用这个查询:
Select
PNRcd,PNRno, Tktno, Tno, Tname, Doj, Class, brding, rsrvdupto
from Tktrsrv
WHERE PNRno = (SELECT Max(PNRno) FROM Tktsrv)
如果 Prdno 是主键,那么您不需要进行分组,因为每个值在 tktrsrv 表中只能存在一次。
因此,您可以选择最大值
select max(PNRno) from tktrsrv
如果您想从另一个具有 PNRno 外键的表中进行选择,则 tktqueue 是我编写的表名)
select * from tktqueue
where PNRno=(select max(PNRno) from tktrsvr);
同样,如果您想从 tktrsrv 中选择另一个表中最高的数据
select * from tktrsvr
where PNRno=(select max(PNRno) from tktqueue);