日期:2014-05-17  浏览次数:20614 次

这种复杂的SQL语句怎么写?
原始表格

单号      日期           金额
1      2013-1-1        5000
2      2013-1-1        100
3       2013-1-10        400
4      2013-1-11        500
5      2013-1-11        5500
6      2013-1-12        5500



现在需要显示的效果是:
日期        金额          当日批次
2013-1-1    5000           1
2013-1-1    100            2
2013-1-10   400            1
2013-1-11   500            1
2013-1-11   5500           2
2013-1-12   5500           1
     

------解决方案--------------------
select *, 当日批次 = row_number()over(partition by 日期 order by 单号) from tb
------解决方案--------------------
select * 当日批次 = (select count(1) from tb where 日期=t.日期 and 单号<=t.单号) from tb t