0

「PNRno」列の最大値を持つ行を取得したいと思います。ここで、PNRnoはTktrsrvの主キーであり、複数のテーブルとの関係があります。コードは次のように記述されます。

 Select
 PNRcd,PNRno, Tktno, Tno, Tname, Doj, Class, brding, rsrvdupto
 from Tktrsrv 
 GROUP BY PNRno  
 Having PNRno= Max(PNRno);

私を助けてください。

4

2 に答える 2

2

を使用する場合、集約されていない、または節GROUP BYで言及されていない列リストの列を使用することはできません。GROUP BY

PNRno の最大値を持つ行を 1 つだけ選択する場合は、必要ありませんGROUP BY。このクエリを使用します。

Select
    PNRcd,PNRno, Tktno, Tno, Tname, Doj, Class, brding, rsrvdupto
  from Tktrsrv 
  WHERE PNRno = (SELECT Max(PNRno) FROM Tktsrv)
于 2011-12-28T16:30:55.140 に答える
0

Prdno が主キーの場合、各値は tktrsrv テーブルに一度しか存在できないため、group by を実行する必要はありません。

したがって、最大値を選択できます

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);
于 2011-12-28T16:37:34.487 に答える