求救,这样的汇总语句怎么写?

特招 2004-10-22 11:54:11
表一
镇 村 面积 地类
---------------------------------------------
南山镇 南山村 102 耕地
南山镇 南通村 120 荒山荒地
东山镇 东山村 103 耕地
东山镇 东通村 130 荒山荒地
西山镇 西山村 104 耕地
西山镇 西通村 140 荒山荒地
北山镇 北山村 105 耕地
北山镇 北通村 150 荒山荒地
中山镇 中山村 299 耕地


如何写查询结果是这样的查询语句
镇 总面积 荒山荒地
---------------------------------------------
南山镇 222 120
东山镇 233 130
西山镇 244 140
北山镇 255 150
中山镇 299 0


...全文
127 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
pbsql 2004-10-22
  • 打赏
  • 举报
回复
置为null就是了:
select 镇,
总面积=sum(面积),
荒山荒地=case when sum(case 地类 when '荒山荒地' then 面积 else 0 end)<>0
then sum(case 地类 when '荒山荒地' then 面积 else 0 end) end
from 表一 group by 镇
lsxaa 2004-10-22
  • 打赏
  • 举报
回复
select 镇,sum(面积) as 总面积
,sum(case 地类 when '荒山荒地' then 面积 else 0 end) as 荒山荒地
from 表一
group by 镇
having (sum(case 地类 when '荒山荒地' then 面积 else 0 end)>0)
特招 2004-10-22
  • 打赏
  • 举报
回复
如何写查询结果是这样的查询语句
镇 总面积 荒山荒地
---------------------------------------------
南山镇 222 120
东山镇 233 130
西山镇 244 140
北山镇 255 150
中山镇 299 0
最后一行的这个0,可不可以让它不显示啊
Liroyal 2004-10-22
  • 打赏
  • 举报
回复
select 镇, 总面积 = sum(面积), 荒山荒地 = sum(case 地类 when '荒山荒地' then 面积 else 0 end) from 表 group by 镇
软件钢琴师 2004-10-22
  • 打赏
  • 举报
回复
楼上的可以了
Frewin 2004-10-22
  • 打赏
  • 举报
回复
改下:
Select a.镇,a.总面积,b.荒山荒地 From(
Select 镇,Sum(Isnull(面积,0))as 总面积 Group By 镇)A
Left Join (SELECT 镇,Sum(Isnull(面积,0))as 荒山荒地 WHERE 地类 = '荒山荒地' Group By 镇)B
ON B.镇=A.镇
Andy__Huang 2004-10-22
  • 打赏
  • 举报
回复
selct 镇,总面积=sum(面积),荒山荒地 =sum(case when 地类='荒山荒地' then 面积 else 0 end)
from tb group by 镇
Frewin 2004-10-22
  • 打赏
  • 举报
回复
Select a.镇,a.总面积,b.荒山荒地 From(
Select 镇,Sum(Isnull(面积,0))as 总面积 Group By 镇)A
Left Join (SELECT 镇,Sum(Isnull(面积,0))as 总面积 WHERE 地类 = '荒山荒地' Group By 镇)B
ON B.镇=A.镇
lsxaa 2004-10-22
  • 打赏
  • 举报
回复
select 镇,sum(面积) as 总面积
,sum(case 地类 when '荒山荒地' then 面积 else 0 end) as 荒山荒地
from 表一
group by 镇
zjcxc 元老 2004-10-22
  • 打赏
  • 举报
回复

select 镇
,总面积=sum(面积)
,荒山荒地=sum(case when 地类='荒山荒地' then 面积 else 0 end)
from 表
group by 镇
pbsql 2004-10-22
  • 打赏
  • 举报
回复
select 镇,
总面积=sum(面积),
荒山荒地=sum(case 地类 when '荒山荒地' then 面积 else 0 end)
from 表一 group by 镇
lsxaa 2004-10-22
  • 打赏
  • 举报
回复
select 镇,sum(面积) as 总面积
,sum(case 地类 when '荒山荒地' then 面积 else 0 end) as 荒山荒地
group by 镇
特招 2004-10-22
  • 打赏
  • 举报
回复
OK了 谢谢大家!

34,587

社区成员

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

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