我通过查询得到如下的查询结果:
corpCode(企业代码) corpName(企业名称) , finseleCode(财政自编码),taxFeeSum(金额)
1111111111 AAAAAAAA 500
2222222222 BBBBBBBB 300.00
3333333333 CCCCCCCC 500
4444444444 DDDDDDDD 2434.56
集团公司1(合计) 00001 800
6666555555 集团公司1下属分公司1 0000100001 200
6666555555 集团公司1下属分公司2 0000100002 600
3424242424 sfsfsfsfsfdsfsf 1300.00
..........................................................................
..........................................................................
以上的结果一次查询有几万或几十万条记示,现在要根据企业的纳税金额排序,有财政自编码的集团公司作为一个整体进行排名
并取前10名或前100名,如果直接select top 10 * from(上面的结果集) A order by taxFeeSum,则会把
6666555555 集团公司1下属分公司1 0000100001 200 这个分公司的排掉,需要把集团公司作为
一个整体进行排名,既能看到集团公司1的合计,又能看到下属分公司的税收情况,上面的两个分公司 600 + 200 合计为800
请问如何进行排序?
corpCode(企业代码) corpName(企业名称) , finseleCode(财政自编码),taxFeeSum(金额)
1111111111 AAAAAAAA 500
2222222222 BBBBBBBB 300.00
3333333333 CCCCCCCC 500
4444444444 DDDDDDDD 2434.56
集团公司1(合计) 00001 800
6666555555 集团公司1下属分公司1 0000100001 200
6666555555 集团公司1下属分公司2 0000100002 600
3424242424 sfsfsfsfsfdsfsf 1300.00
..........................................................................
..........................................................................
以上的结果一次查询有几万或几十万条记示,现在要根据企业的纳税金额排序,有财政自编码的集团公司作为一个整体进行排名
并取前10名或前100名,如果直接select top 10 * from(上面的结果集) A order by taxFeeSum,则会把
6666555555 集团公司1下属分公司1 0000100001 200 这个分公司的排掉,需要把集团公司作为
一个整体进行排名,既能看到集团公司1的合计,又能看到下属分公司的税收情况,上面的两个分公司 600 + 200 合计为800
请问如何进行排序?
from test
order by myorder,finseleCode说明:
(case finseleCode when '' then taxFeeSum else (select taxFeeSum from test where finseleCode=left(finseleCode,1,5)))的作用是:若有集团编码则取集团的税收数据,否则就是自己的税收数据
这个就是表结构,上面的结果是查询出来的
1111111111 AAAAAAAA 500
2222222222 BBBBBBBB 300.00
3333333333 CCCCCCCC 600
4444444444 DDDDDDDD 2434.56
集团公司1(合计) 00001 800
6666555555 集团公司1下属分公司1 0000100001 200
6666555555 集团公司1下属分公司2 0000100002 600
3424242424 sfsfsfsfsfdsfsf 1300.00 上面是查询出来的数据,如果要得到上面交税最大的前3名应得到的结果为:
4444444444 DDDDDDDD 2434.56
3424242424 sfsfsfsfsfdsfsf 1300.00
集团公司1(合计) 00001 800
6666555555 集团公司1下属分公司1 0000100001 200
6666555555 集团公司1下属分公司2 0000100002 600请问该如何写sql?