你这种,要把月份条件写到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 第一所属专业部门, 时间
1、查询当天的所有数据
2、查询昨天的所有数据
3、查询未来第n天的所有数据
结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。
它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统, 可以使用相同的结构化查询语言作为数据输入与管理的接口。
你的学号是不是:012222,012355这样的数据?学号的字段应该是字符串类型的,用下面的语句就可以select
no,
name
from
student
where
no
like
'01%'关联三个表,并把日期转换成月份,然后按月份进行汇总即可,语句如下:
select 月份,物料名称,sum(数量) as 数量 from(select convert(nvarchar(7),zfdate,120) as 月份,pfname as 物料名称,mfqty as 数量 from icstockbill as z,icstockbillentry as m,t_icitem as p where zfinterid=mfinterid and mfitemid=pfitemid)a group by 月份,物料名称 with rollup
执行后结果为:
月份 物料名称 数量
---------------------------------------
2015-03 1号 11
2015-03 2号 22
2015-03 3号 33
2015-03 66
2015-04 1号 44
2015-04 2号 55
2015-04 99
165
里上图 表 aaa, 要按月份查找,a 出现的次数,代码如下
SELECTCAST(YEAR(rq) as varchar) + '-' + CAST(MONTH(rq) as varchar) AS date,
count() AS '次数'
FROM aaa
where a="a"
GROUP BY
CAST(YEAR(rq) as varchar) + '-' + CAST(MONTH(rq) as varchar);
结果如下图,看看是不是你要的
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)