求SQL语句或存储过程

vcforeverya 2007-09-17 04:33:49
A表:
月份 金额
2007-9 67
2007-7 99
2007-7 66

?分别求出A表中小于100 100-200 大于200的记录数,然后插入B表中:

得到的结果应该是下面这样
B表
月份 小于100(条) 100-200(条) 大于200(条)
2007-7 2 0 0
2007-9 1 0 0
...全文
149 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
elvis_gao 2007-09-17
  • 打赏
  • 举报
回复
select 月份,
小于100=sum(case when 金额<100 then 1 else 0 end),
100-200=sum(case when 金额>=100 AND 金额<=200 then 1 else 0 end),
大于200=sum(case when 金额>200 then 1 else 0 end)
from 表A
group by 月份
giftzheng 2007-09-17
  • 打赏
  • 举报
回复
后面写错了

金额>200
giftzheng 2007-09-17
  • 打赏
  • 举报
回复
--insert into B表

select 月份 sum(a) as 小于100(条), sum(b) as a100-200(条), sum(c) as 大于200(条)
from
(
select 月份 ,count(*) as a,0 as b,0 as c
from A表
where 金额<100
group by 月份
union all
select 月份 ,0 as a, count(*) as b,0 as c
from A表
where 金额>=100 and 金额<=200
group by 月份
union all
select 月份 ,0 as a, 0 as b, count(*) as c
from A表
where 金额>100
group by 月份
) as temp

group by 月份

tds__609 2007-09-17
  • 打赏
  • 举报
回复
up~~

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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