access数据库统计每月的记录数,可以通过如下sql语句:
SELECT [name],[date],count(*) FROM tabel1 group by [name],[date]方法一:这种方法列名是固定的。select 名称,
sum(case when substring(convert(varchar(7),日期,120),6,2)='09' then 出售数量 else 0 end) as '9月',
sum(case when substring(convert(varchar(7),日期,120),6,2)='10' then 出售数量 else 0 end) as '10月'
from 表
group by 名称
方法二:这种方法虽然麻烦一些,但是支持列名不确定的情况。
declare @sql varchar(2000)
declare @mon varchar(2)
set @sql = 'select 名称'
select @sql = @sql + ',sum(case mon when '''+mon+''' then 出售数量 end) ['+mon+'月]'
from (select distinct substring(convert(varchar(7),日期,120),6,2) mon from 表) as a
select @sql = @sql+' from 表 group by 名称'
exec(@sql)
你这种,要把月份条件写到where里,不要直接加在select那
这样试试:
SELECT 时间, ISNULL(SUM(数量), 0) AS 故障数量FROM
(SELECT CONVERT(varchar(7), 首次接报时间, 120) AS 时间,
第一所属专业部门, COUNT(id) AS 数量
FROM dbo.Faults 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 第一所属专业部门, 时间
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)