Code Bye

sql语句的问题,请问这样的需求应该怎么查询

 

数据库里:
id   父表ID   余额   应交    交款日期
1       1      200   100     2010-05-31
2       1      0     300     2010-05-20
3       1      0     150     2010-05-23
4       2      0     160     2010-01-08
5       2      100   100     2010-03-24
6       2      100   100     2010-05-24
7       2      100   100     2010-02-24
8       3      100   100     2010-02-28
9       3      100   100     2010-03-10
10      3      100   100     2010-01-15

需要查出每一个父表ID所对应最后一次交款日期的记录,结果应为:

1       1      200   100     2010-05-31
6       2      100   100     2010-05-24
9       3      100   100     2010-03-10

请问这样的sql语句应该怎么些?谢谢!

10分
SELECT * from tablename order by 交款日期 desc group by 父表id试下这句吧我也不太清楚还没睡醒脑子不是很清楚不对请见谅
10分
 select * from                                                                    
 (                                                                            
   select t.*,rank() over(partition by t.父表ID order by t.交款日期 desc) ro from your_table t
  )                                                                           
  where ro=1

测试过,没问题

10分
你用的什么数据库,
10分
select id,父表ID, 余额,应交,max(交款日期) from tablename group by 父表ID;
引用 3 楼 buddhadalong 的回复:

你用的什么数据库,

oracle 自己解决了,谢谢大家的参与
1楼和4楼一看就不行,group by还能用*查吗?2楼的不知道用的什么函数。
不过还是谢谢

我试过了,可以啊!不过是用的MySql

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明sql语句的问题,请问这样的需求应该怎么查询