2

これは私のデータです

Id Name Amt

1  ABC  20
2  XYZ  30
3  ABC  25
4  PQR  50
5  XYZ  75
6  PQR  40

次のような特定の名前ごとに最後のレコードが必要です。

3  ABC  25
5  XYZ  75 
6  PQR  40

グループ化してみましたが、何か足りないものがあります。

SELECT     PatientID, Balance, PReceiptNo
FROM         tblPayment
GROUP BY PatientID, Balance, PReceiptNo
4

5 に答える 5

6

このようなものが動作するはずです:

SELECT p1.*
FROM tblPayment p1
LEFT JOIN tblPayment p2 ON p1.Name = p2.Name AND p1.Id < p2.Id
WHERE p2.Id IS NULL;

このSQLFiddleを参照してください

于 2013-08-03T10:12:41.410 に答える
1

次のようになります。

SELECT 
    id, 
    name, 
    amt
FROM
    myTable mt1
where mt1.id = (
                    SELECT 
                        MAX(id) 
                    FROM myTable mt2 
                    WHERE mt2.name = mt1.name
                )
于 2013-08-03T10:15:03.507 に答える
0

これはうまくいくはずです

select * from (select id, name,amount from test order by id desc)as t1 group by name;

フィドル

于 2013-08-03T10:35:18.207 に答える
0

考えられる解決策:

Select p.* 
from tblPayment p
Inner join ( 
  Select name, max(id) as id
  From tblPayment 
  Group by name
) as latest on latest.id = p.id
于 2013-08-03T22:56:55.890 に答える