1

max() 関数を使用して、そのテーブルの最後のレコードを取得したい。

クエリ

select oafaci, oaorno, min(obfded) ,max(oblded) from mvxcdtpusd.oohead join mvxcdtpusd.ooline on oacono = obcono and oaorno = oborno and oafaci = obfaci and oawhlo = obwhlo where obitno like '19140%' and OBCONO = 888 group by OAFACI, OAORNO

結果

OAFACI  OAORNO      FDate            LDate
812 0000556215  20130109    20130109
812 0000554203  20130102    20130102
812 0000553769  20121017    20121017
812 0000554204  20130130    20130130
812 0000556214  20121024    20121024
812 0000556216  20130206    20130206

その結果テーブルから、以下のデータが必要です。

欲望の結果

812 0000556216  20130206    20130206

max() を使用して最後のレコードを取得するのに助けが必要

4

2 に答える 2

6

なぜ関数を使用する必要があるのですか? max()これが宿題の場合は、質問にその旨を記載してください。

最後のレコードを取得する最良の方法は、次のようなものです。

select *
from t
order by date
fetch first 1 row only
于 2013-02-04T03:45:07.590 に答える
2

このクエリを試してください。

SELECT  *
FROM    tablename
WHERE   OAFACI = 812 AND
        OAORNO = (SELECT MAX(OAORNO) 
                    FROM tableName
                    WHERE OAFACI = 812)

アップデート

SELECT  a.*
FROM    tableName a
        INNER JOIN 
        (
            SELECT  OAFACI, MAX(FDATE) max_date
            FROM    tableName
            GROUP   BY OAFACI
        ) b ON  a.OAFACI = b.OAFACI AND
                a.FDATE = b.max_date
-- WHERE    a.OAFACI = 812
于 2013-02-04T01:51:40.470 に答える