求一SQL语句?

xj116 2008-07-26 12:06:43
纳税人中文名称 税类 金额
101防脱生发 城镇土地使用税 69
101防脱生发 房产税 15
101防脱生发 个人所得税 182
爱乐OK厅 城镇土地使用税 144
爱乐OK厅 房产税 18
爱乐OK厅 个人所得税 1158
安琪儿酒吧 城镇土地使用税 288.04
安琪儿酒吧 罚没收入 10
安琪儿酒吧 房产税 29
安琪儿酒吧 个人所得税 1759.22
安仁红星照像馆 城镇土地使用税 146
安仁红星照像馆 房产税 482
安仁红星照像馆 个人所得税 240

我要对纳税人中文名称进行排序,要求合计金额最大的排在前面,就是那个纳税人一共缴的税多就排在最前面。
比如:安琪儿酒吧的合计纳税金额为2086.26元应该排第一,爱乐OK厅的合计纳税金额为1320元应该排第二,以此类推。
就像这样:

纳税人中文名称 税类 金额
安琪儿酒吧 个人所得税 1759.22
安琪儿酒吧 城镇土地使用税 288.04
安琪儿酒吧 房产税 29
安琪儿酒吧 罚没收入 10
爱乐OK厅 个人所得税 1158
爱乐OK厅 城镇土地使用税 144
爱乐OK厅 房产税 18
安仁红星照像馆 房产税 482
安仁红星照像馆 个人所得税 240
安仁红星照像馆 城镇土地使用税 146
101防脱生发 个人所得税 182
101防脱生发 城镇土地使用税 69
101防脱生发 房产税 15

...全文
117 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
wind313233236 2008-08-22
  • 打赏
  • 举报
回复
按纳税人分组,再按金额降序
-晴天 2008-07-26
  • 打赏
  • 举报
回复
create table #T(纳税人中文名称 nvarchar(10),税类 nvarchar(10), 金额 int)
insert into #T select '101防脱生发','城镇土地使用税',69
insert into #T select '101防脱生发','房产税',15
insert into #T select '101防脱生发','个人所得税',182
insert into #T select '爱乐OK厅','城镇土地使用税',144
insert into #T select '爱乐OK厅','房产税',18
insert into #T select '爱乐OK厅','个人所得税',1158
insert into #T select '安琪儿酒吧','城镇土地使用税',288.04
insert into #T select '安琪儿酒吧','罚没收入',10
insert into #T select '安琪儿酒吧','房产税',29
insert into #T select '安琪儿酒吧','个人所得税',1759.22
insert into #T select '安仁红星照像馆','城镇土地使用税',146
insert into #T select '安仁红星照像馆','房产税',482
insert into #T select '安仁红星照像馆','个人所得税',240

select a.纳税人中文名称,b.税类,b.金额 from (
select 纳税人中文名称,sum(金额) as hj from #T group by 纳税人中文名称)a
inner join #T b on a.纳税人中文名称=b.纳税人中文名称
order by a.hj desc,b.金额 desc
/*
纳税人中文名称 税类 金额
---------- ---------- -----------
安琪儿酒吧 个人所得税 1759
安琪儿酒吧 城镇土地使用税 288
安琪儿酒吧 房产税 29
安琪儿酒吧 罚没收入 10
爱乐OK厅 个人所得税 1158
爱乐OK厅 城镇土地使用税 144
爱乐OK厅 房产税 18
安仁红星照像馆 房产税 482
安仁红星照像馆 个人所得税 240
安仁红星照像馆 城镇土地使用税 146
101防脱生发 个人所得税 182
101防脱生发 城镇土地使用税 69
101防脱生发 房产税 15

(13 行受影响)
*/
-晴天 2008-07-26
  • 打赏
  • 举报
回复
create table #T(纳税人中文名称 nvarchar(10),税类 nvarchar(10), 金额 int)
insert into #T select '101防脱生发','城镇土地使用税',69
insert into #T select '101防脱生发','房产税',15
insert into #T select '101防脱生发','个人所得税',182
insert into #T select '爱乐OK厅','城镇土地使用税',144
insert into #T select '爱乐OK厅','房产税',18
insert into #T select '爱乐OK厅','个人所得税',1158
insert into #T select '安琪儿酒吧','城镇土地使用税',288.04
insert into #T select '安琪儿酒吧','罚没收入',10
insert into #T select '安琪儿酒吧','房产税',29
insert into #T select '安琪儿酒吧','个人所得税',1759.22
insert into #T select '安仁红星照像馆','城镇土地使用税',146
insert into #T select '安仁红星照像馆','房产税',482
insert into #T select '安仁红星照像馆','个人所得税',240

select a.纳税人中文名称,b.税类,b.金额 from (
select 纳税人中文名称,sum(金额) as hj from #T group by 纳税人中文名称)a
left join #T b on a.纳税人中文名称=b.纳税人中文名称
order by a.hj desc
/*
纳税人中文名称 税类 金额
---------- ---------- -----------
安琪儿酒吧 城镇土地使用税 288
安琪儿酒吧 罚没收入 10
安琪儿酒吧 房产税 29
安琪儿酒吧 个人所得税 1759
爱乐OK厅 城镇土地使用税 144
爱乐OK厅 房产税 18
爱乐OK厅 个人所得税 1158
安仁红星照像馆 城镇土地使用税 146
安仁红星照像馆 房产税 482
安仁红星照像馆 个人所得税 240
101防脱生发 城镇土地使用税 69
101防脱生发 房产税 15
101防脱生发 个人所得税 182

(13 行受影响)
*/
leo_lesley 2008-07-26
  • 打赏
  • 举报
回复

create table 表名(纳税人中文名称 nvarchar(100) , 税类 nvarchar(100), 金额 int)
insert 表名

select N'101防脱生发',N'城镇土地使用税', 69
union select N'101防脱生发',N'房产税', 15
union select N'101防脱生发',N'个人所得税', 182
union select N'爱乐OK厅',N'城镇土地使用税', 144
union select N'爱乐OK厅',N'房产税', 18
union select N'爱乐OK厅',N'个人所得税', 1158
union select N'安琪儿酒吧',N'城镇土地使用税', 288.04
union select N'安琪儿酒吧',N'罚没收入', 10
union select N'安琪儿酒吧',N'房产税', 29
union select N'安琪儿酒吧',N'个人所得税', 1759.22
union select N'安仁红星照像馆',N'城镇土地使用税', 146
union select N'安仁红星照像馆',N'房产税 ', 482
union select N'安仁红星照像馆',N'个人所得税', 240


select a.* from 表名 a left join (select 纳税人中文名称 ,金额= sum(金额) from 表名 group by 纳税人中文名称) b on a.纳税人中文名称=b.纳税人中文名称 order by b.金额 desc


drop table 表名


/* 结果

(13 row(s) affected)

纳税人中文名称 税类 金额
---------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------- -----------
安琪儿酒吧 个人所得税 1759
安琪儿酒吧 城镇土地使用税 288
安琪儿酒吧 房产税 29
安琪儿酒吧 罚没收入 10
爱乐OK厅 个人所得税 1158
爱乐OK厅 城镇土地使用税 144
爱乐OK厅 房产税 18
安仁红星照像馆 个人所得税 240
安仁红星照像馆 城镇土地使用税 146
安仁红星照像馆 房产税 482
101防脱生发 个人所得税 182
101防脱生发 城镇土地使用税 69
101防脱生发 房产税 15

(13 row(s) affected)


*/
leo_lesley 2008-07-26
  • 打赏
  • 举报
回复
create table 表名(纳税人中文名称 nvarchar(100) , 税类 nvarchar(100), 金额 int)
insert 表名

select N'101防脱生发',N'城镇土地使用税', 69
union select N'101防脱生发',N'房产税', 15
union select N'101防脱生发',N'个人所得税', 182
union select N'爱乐OK厅',N'城镇土地使用税', 144
union select N'爱乐OK厅',N'房产税', 18
union select N'爱乐OK厅',N'个人所得税', 1158
union select N'安琪儿酒吧',N'城镇土地使用税', 288.04
union select N'安琪儿酒吧',N'罚没收入', 10
union select N'安琪儿酒吧',N'房产税', 29
union select N'安琪儿酒吧',N'个人所得税', 1759.22
union select N'安仁红星照像馆',N'城镇土地使用税', 146
union select N'安仁红星照像馆',N'房产税 ', 482
union select N'安仁红星照像馆',N'个人所得税', 240


select a.* from 表名 a left join (select 纳税人中文名称 ,金额= sum(金额) from 表名 group by 纳税人中文名称) b on a.纳税人中文名称=b.纳税人中文名称 order by b.金额 desc


drop table 表名
linguojin11 2008-07-26
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 qqhmitzk 的回复:]
SQL codeselect 纳税人中文名称,税类,金额 from #T a
order by (select sum(金额) from #T b where b.纳税人中文名称=a.纳税人中文名称 group by 纳税人中文名称) desc ,金额 desc
[/Quote]
请问下 select sum(金额) from #T b where b.纳税人中文名称=a.纳税人中文名称 group by 纳税人中文名称 这句中的 “b.纳税人中文名称=a.纳税人中文名称”是怎么解释,去掉的话有什么不一样吗?

hyqwan11112 2008-07-26
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 qianjin036a 的回复:]
SQL codecreatetable#T(纳税人中文名称nvarchar(10),税类nvarchar(10), 金额int)insertinto#Tselect'101防脱生发','城镇土地使用税',69insertinto#Tselect'101防脱生发','房产税',15insertinto#Tselect'101防脱生发','个人所得税',182insertinto#Tselect'爱乐OK厅','城镇土地使用税',144insertinto#Tselect'爱乐OK厅','房产税',18insertinto#Tselect'爱乐OK厅','个人所得税',1158insertinto#Tselect'安琪儿酒吧','城镇土地使用税…
[/Quote]
xj116 2008-07-26
  • 打赏
  • 举报
回复
正解!
万分感谢楼上各位热心朋友哈!
解决了我燃眉之急!!
qqhmitzk 2008-07-26
  • 打赏
  • 举报
回复

纳税人中文名称 税类 金额
---------- ---------- -----------
安琪儿酒吧 个人所得税 1759
安琪儿酒吧 城镇土地使用税 288
安琪儿酒吧 房产税 29
安琪儿酒吧 罚没收入 10
爱乐OK厅 个人所得税 1158
爱乐OK厅 城镇土地使用税 144
爱乐OK厅 房产税 18
安仁红星照像馆 房产税 482
安仁红星照像馆 个人所得税 240
安仁红星照像馆 城镇土地使用税 146
101防脱生发 个人所得税 182
101防脱生发 城镇土地使用税 69
101防脱生发 房产税 15

(所影响的行数为 13 行)
qqhmitzk 2008-07-26
  • 打赏
  • 举报
回复
select 纳税人中文名称,税类,金额 from  #T a
order by (select sum(金额) from #T b where b.纳税人中文名称=a.纳税人中文名称 group by 纳税人中文名称) desc ,金额 desc
zhiguo2008 2008-07-26
  • 打赏
  • 举报
回复

select A.* from 表名 a join (select 纳税人中文名称,sum(金额) 金额 from 表名 group by  纳税人中文名称 )B
on A.纳税人中文名称=b.纳税人中文名称
order by b.金额 desc,a.金额 desc


纳税人中文名称 税类 金额
---------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------- -----------
安琪儿酒吧 个人所得税 1759
安琪儿酒吧 城镇土地使用税 288
安琪儿酒吧 房产税 29
安琪儿酒吧 罚没收入 10
爱乐OK厅 个人所得税 1158
爱乐OK厅 城镇土地使用税 144
爱乐OK厅 房产税 18
安仁红星照像馆 房产税 482
安仁红星照像馆 个人所得税 240
安仁红星照像馆 城镇土地使用税 146
101防脱生发 个人所得税 182
101防脱生发 城镇土地使用税 69
101防脱生发 房产税 15

(13 行受影响)

34,593

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧