次の選択肢があり、Tracctが複数回発生した場合に最新のTranDateのみを返したいと思います。
SELECT tracct, trancd, trnsta, date(digits(trdat7)) as TranDate, type
FROM DATALIBRARY.LNHIST LNHIST
JOIN DATALIBRARY.LNMAST LNMAST
on LNHIST.TRACCT = LNMAST.ACCTNO
WHERE YEAR(date(digits(trdat7))) >= YEAR(current_date) - 2 and trnsta = '1' and trancd = 891 and type not like 'I%'
現在の結果:
|Tracct | Trancd | Trnsta | TranDate | Type|
----------------------------------------------
425660 | 891 | 1 | 2013-05-10 | C5 |
102649 | 891 | 1 | 2013-05-10 | C5 |
102741 | 891 | 1 | 2015-08-08 | RO |
102741 | 891 | 1 | 2015-09-10 | RO |
102741 | 891 | 1 | 2014-05-10 | RO |
115298 | 891 | 1 | 2013-03-31 | CV |
102313 | 891 | 1 | 2015-04-10 | CL |
102313 | 891 | 1 | 2015-05-10 | CL |
ネストされたクエリが必要です
クエリを呼び出しますSUBQUERY
。
私はあなたが欲しいと思います
SELECT Tracct, Trancd, Trnsta, Type, MAX(TranDate)
FROM SUBQUERY
GROUP BY Tracct, Trancd, Trnsta, Type
または、クエリを次のように書き直すことができます
SELECT tracct, trancd, trnsta, type, MAX(date(digits(trdat7))) as TranDate
FROM DATALIBRARY.LNHIST LNHIST
JOIN DATALIBRARY.LNMAST LNMAST
on LNHIST.TRACCT = LNMAST.ACCTNO
WHERE YEAR(date(digits(trdat7))) >= YEAR(current_date) - 2 and trnsta = '1' and trancd = 891 and type not like 'I%'
GROUP BY tracct, trancd, trnsta, type
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加