你这种,要把月份条件写到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 第一所属专业部门, 时间
使用case when
case when xx between '2012/12/21' and '2013/1/20' then ’1月‘
when xx between '2013/11/21' and '2013/12/20' then ’12月‘
end as 月份
作为子查询,外面group by 一下
SELECT date_format(crtime,'%Y-%m') as qq ,
sum(order_logquan mersprice) as profit,
count(orderid) as Quant
FROM order_log
left outer join mers
on order_logtb_id = merstb_id
group by qq
举例中 我是两张表,一张表是销售记录order_log
另一张表是 商品价格mers
所以用了联合查询,如果你是同一张表就更简单了 不用联合查询
以上就是关于sql截止上月查询语句,按月统计全部的内容,包括:sql截止上月查询语句,按月统计、sql 查询的时候按月汇总显示数据、sql语句如何统计出当月之前的几个月的数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)