编写sql语句实现 group by count

somerenren 2012-07-10 03:20:30
编写sql语句实现


a表记录的是缴费纪录,其中state_date是date型,记录缴费时间;charge是number型,记录缴费金额,单位元。请按天顺序统计出每天缴费大于100元的缴费记录数。


紧求呀
...全文
102 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
AcHerat 元老 2012-07-10
  • 打赏
  • 举报
回复

--刚才是对原表数据存在的日期进行的统计,如果按时间段每天都显示,可以:

declare @start datetime
declare @end datetime
set @start = '2012-07-01'
set @end = '2012-07-10'
;with cte as
(
select convert(varchar(10),dateadd(dd,number,@start),120) as date
from master..spt_values
where [type] = 'P' and number between 0 and datediff(dd,@start,@end)
)

select a.date,sum(case when isnull(b.charge,0)>100 then 1 else 0 end) as cnt
from cte a left join tb b on a.date = convert(varchar(10),b.state_date,120)
group by a.date
天-笑 2012-07-10
  • 打赏
  • 举报
回复

select convert(varchar(10),state_date,120) as date,
sum(case when charge > 100 then 1 else 0 end) as cnt
from tb
group by convert(varchar(10),state_date,120)
order by convert(varchar(10),state_date,120)
Felixzhaowenzhong 2012-07-10
  • 打赏
  • 举报
回复
select state_date from tb
group by state_date
having sum(charge) >100
order by state_date
AcHerat 元老 2012-07-10
  • 打赏
  • 举报
回复

select convert(varchar(10),state_date,120) as date,
sum(case when charge > 100 then 1 else 0 end) as cnt
from tb
group by convert(varchar(10),state_date,120)

34,590

社区成员

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

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