sql截止上月查询语句,按月统计

sql截止上月查询语句,按月统计,第1张

你这种,要把月份条件写到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 出现的次数,代码如下

SELECT
CAST(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);

结果如下图,看看是不是你要的


欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/yw/13339191.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-17
下一篇 2023-07-17

发表评论

登录后才能评论

评论列表(0条)

保存