又来格式化的问题.这种问题sql很弱的
解决方案 »
- 急啊。可以通代码来分离正在用的SQL数据库不…………
- 刚写存储过程遇到了一点问题。求高手指点
- 各位老大,救命。我不小心清空了几个表。请问如何可以找回来?多少分都可以。
- 已经取得满足条件的记录集,如何取出这个记录集的最后一条记录?
- sql2000查询慢得厉害,cpu和内存都不高,记录不多。每秒300个连接 求高人解决!!
- 在sqlserver2000的数据库服务器上面,如何禁止操作系统方式登录!
- 在线等个SQL语句,谢谢
- 菜鸟送分,这个sql如何写?
- 哪位大侠会用VB调用SQL Server的存储过程,并可得到存储过程的返回值?
- sql server6.5能不能实现触发器与外部程序(如VC++)的通讯
- 如何在查询中添加一序号列?
- (新手)如何处理二进制字段的数据替换?
,城市=case when grouping(city)=1 then ''
else case when grouping(area)=1 then city else '' end end
,area=case when grouping(city)=1 then ''
else case when grouping(area)=1 then '' else area end end
,buy_amount=sum(buy_amount)
,grouping(province),grouping(city),grouping(area)
from 表
group by province,city,area
with rollup
having grouping(province)=0 and (grouping(area)=1 or area<>'')
order by province,grouping(city) desc,city,grouping(area) desc
select 省份=case when grouping(city)=1 then province else '' end
,城市=case when grouping(city)=1 then ''
else case when grouping(area)=1 then city else '' end end
,area=case when grouping(city)=1 then ''
else case when grouping(area)=1 then '' else area end end
,buy_amount=sum(buy_amount)
from 表
group by province,city,area
with rollup
having grouping(province)=0 and (grouping(area)=1 or area<>'')
order by province,grouping(city) desc,city,grouping(area) desc
create table 表(province varchar(10),city varchar(10),area varchar(10),buy_amount int)
insert 表 select '吉林省','长春市','', 500
union all select '吉林省','吉林市','', 500
union all select '广东省','深圳市','福田',700
union all select '广东省','深圳市','罗湖',200
union all select '广东省','深圳市','宝安',100
union all select '广东省','广州市','',500
union all select '广东省','惠州市','',500
go--查询
select 省份=case when grouping(city)=1 then province else '' end
,城市=case when grouping(city)=1 then ''
else case when grouping(area)=1 then city else '' end end
,area=case when grouping(city)=1 then ''
else case when grouping(area)=1 then '' else area end end
,buy_amount=sum(buy_amount)
from 表
group by province,city,area
with rollup
having grouping(province)=0 and (grouping(area)=1 or area<>'')
order by province,grouping(city) desc,city,grouping(area) desc
go--删除测试
drop table 表/*--测试结果
省份 城市 area buy_amount
---------- ---------- ---------- -----------
广东省 2000
广州市 500
惠州市 500
深圳市 1000
宝安 100
福田 700
罗湖 200
吉林省 1000
长春市 500
吉林市 500(所影响的行数为 10 行)
--*/