
select convert(varchar(7),datetime,120) date,foodid,userid,sum(mak) from tablename
group by convert(varchar(7),datetime,120),foodid,userid
你测试看看。 是不是这样。
select 月份,sum(isnull(count,0)) from A group by 月份
你是不是整个月没数据的就自动要补一条记录为0的
我想了一下,简单的这样写,都不可能出现补零的数据,毕竟这个月份的数据并没有出现在表中。
看实际情况,必要时候使用union
既然知道只有两个月的,那就补上
select from
(
select 月份,sum(isnull(count,0)) from A group by 月份
union all
select '2012-02',0
union all
select '2013-05',0
) a
order by 月份
不过话说你是不是年份弄错了,从2012直接跳到2013?
我这个方法还搞不定吗?
declare @yf int
declare @rqxx varchar (30)
declare @rqsx varchar (30)
set @yf = '' --输入月份
set @rqxx =convert(varchar(30),@yf-1)+'月'+'26日'+'14:30:00'
set @rqxx =convert(varchar(30),@yf)+'月'+'25日'+'14:30:00'
select sum(交易量) from a where 交易时间 between @rqxx and @rqsx
这个只是个思路
上面我把@rqxx,@rqsx 定义为 varchar 你在具体定义时 要和a中交易时间一致,时间格式也要改 而且这个月份只能实现 2月--12月查询 有需要的话自己改下
你这种,要把月份条件写到where里,不要直接加在select那
这样试试:
SELECT 时间, ISNULL(SUM(数量), 0) AS 故障数量FROM
(SELECT CONVERT(varchar(7), 首次接报时间, 120) AS 时间,
第一所属专业部门, COUNT(id) AS 数量
FROM dboFaults WHERE (第一所属专业部门 LIKE N'机电')
and cast(convert(varchar(4),dateadd(mm,-1,getdate()),120) as int)=year(首次接报时间)
and convert(varchar(7),首次接报时间, 120)<=convert(varchar(7),dateadd(mm,-1,getdate()),120)
GROUP BY 首次接报时间, 第一所属专业部门) AS aGROUP BY 第一所属专业部门, 时间
select sum(a销售数量),sum(a销售金额),sum(b汇款金额) from 表1 a inner join 表2 b
on a客户名称=b客户名称 and a销售日期 between 本月25日 and 26日 group by a客户名称
剩下年汇总 你在分别select sum()单独查吧
要不你软件支持自定义存储过程 就写一个存储过程 把时间段当参数传进去,再用getdate函数取当前年数 有点费劲,估计得写三维报表 哈哈 你还是简单化吧
以上就是关于SQL语句怎么按照月统计数量全部的内容,包括:SQL语句怎么按照月统计数量、SQL 查询每个月统计的数据。、SQL按月统计,按日分组等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)