你的目的是不是分类获取该分类中金额数最大的? 如果是的话,那就先按照分类排序,再按照金额desc排列,在where条件中加上rownum=1就可以了,即 select * from 入金明细 where rownum=1 order by 入金no asc,入金额 desc
select * from 入金明细 where rowid in (select min(rowid) from 入金明细 group by 入金NO)
支持yujiabian(),我觉得这才是解决问题的方法
rownum=1 不就只有一条结果了?!不行!
以上数据误导了大家.看看如下数据入金NO 行NO A0 A A1 A A2 A B1 B B2 B B3 B ... Z0 Z Z2 Z Z9 Z 要每类的第一条。
select * from 表 where rowid in (select min(rowid) from 表 group by 行NO)这个应该可以吧
要每类的第一条。 就是 A0 A B1 B 。 。 。Z0 Z 难吗?
select * from 表 where rowid in (select min(rowid) from 表 group by 行NO)这个应该可以
不过方法有局限 比如我要的到头2条 A0 A A1 A B1 B B2 B ... Z0 Z Z2 Z 这个方法实现不了。
虽然这个问题已经结束了,不过,我个人认为 " letsflytogether " select * from 入金明细 where rowid in (select min(rowid) from 入金明细 group by 入金NO). 采用in,如果 入金明细 表数据量比较大的时候,效率可能不是很好!个人推荐,在表很大的时候,尽量避免使用in
where A.行No = (
select min(b.行No)
from 入金明細 B
where A.入金No = B.入金No
);
--如果能够肯定 行No 肯定是从1开始,这最方便了
只要不出先
232 2 32 61530
232 3 35 840希望得到
232 2 32 61530
这种情况就可以:)
如果是的话,那就先按照分类排序,再按照金额desc排列,在where条件中加上rownum=1就可以了,即
select * from 入金明细 where rownum=1 order by 入金no asc,入金额 desc
A0 A
A1 A
A2 A
B1 B
B2 B
B3 B
...
Z0 Z
Z2 Z
Z9 Z
要每类的第一条。
就是
A0 A
B1 B
。
。
。Z0 Z
难吗?
比如我要的到头2条
A0 A
A1 A
B1 B
B2 B
...
Z0 Z
Z2 Z
这个方法实现不了。
" letsflytogether "
select * from 入金明细 where rowid in (select min(rowid) from 入金明细 group by 入金NO).
采用in,如果 入金明细 表数据量比较大的时候,效率可能不是很好!个人推荐,在表很大的时候,尽量避免使用in