㈠ sql如何按年份月份统计
select
left(convert(varchar(10),[datetime],120),7)
as
月份,sum(Amount)
as
总数
from
表
where
[datetime]<='你输入的时间条件'
group
by
left(convert(varchar(10),[datetime],120),7)
根据你的数据结果格式重新修改了下:
select
cast(datepart(year,[datetime])
as
varchar)+'年'+cast(datepart(month,[datetime])
as
varchar)+'月'
as
月份,sum(Amount)
as
总数
from
表
where
[datetime]<='你输入的时间条件'
and
datepart(year,[datetime])=left('你输入的时间条件',4)
group
by
cast(datepart(year,[datetime])
as
varchar)+'年'+cast(datepart(month,[datetime])
as
varchar)+'月'
㈡ sql语句,按年度查询循环查询一到十二月的汇总表,那位高手帮我写一个例子啊
假如数据库表:你的费用表
数据字段: 用户, 费用, 日期
select 用户, sum(费用), year(日期), month(日期) from
( select 用户, 费用, 日期 from 你的费用表 where 用户 ='你给定的值' ) ttt group by 用户,year(日期), month(日期)
㈢ 求助,sql存储过程。根据选择的年份,汇总12个月份的信息。
datepart(month,日期)能得到月份
sql语句大概是好物:
select from
group by datepart(month,日期)
如果你想月份打横排在标题列的话用case when。
你的图看不清,数据库模李的表结构不知道,我只能友码液尽人事帮到这里
㈣ sql 从日期中提取年份,按年份求和
思路:先准备好整个时间段的月份,然后关联统计就行了;
--mssql:
WITHTMPAS
(SELECT'1994-1-1'ASBEGAN_DATE,'1994-12-1'ASEND_DATE,100.00ASJS,
1200.00ASZJS
UNIONALL
SELECT'1995-1-1','1995-5-1',100.00,500.00
UNIONALL
SELECT'1995-6-1','1998-3-1',100.00,34000.00
)
,TMP1AS(SELECTDATEADD(MONTH,T.NUMBER,T1.BEGAN_DATE)AST_MONTH
FROMMASTER..SPT_VALUEST,
(SELECTMIN(BEGAN_DATE)ASBEGAN_DATE,
DATEDIFF(MONTH,MIN(BEGAN_DATE),MAX(END_DATE))AST_MONTH
FROMTMP)T1
WHERET.NUMBER<=T1.T_MONTHAND
T.TYPE='P')
SELECTDATENAME(YEAR,T1.T_MONTH)ASYEARS,SUM(T.JS)ASZJS
FROMTMPT
INNERJOINTMP1T1
ONT1.T_MONTH>=CAST(T.BEGAN_DATEASDATE)AND
T1.T_MONTH<=CAST(T.END_DATEASDATE)
GROUPBYDATENAME(YEAR,T1.T_MONTH),T.BEGAN_DATE
ORDERBYDATENAME(YEAR,T1.T_MONTH);
--oracle:
WITHTMPAS
(SELECT'1994-1-1'ASBEGAN_DATE,'1994-12-1'ASEND_DATE,100.00ASJS,
1200.00ASZJS
FROMDUAL
UNIONALL
SELECT'1995-1-1','1995-5-1',100.00,500.00
FROMDUAL
UNIONALL
SELECT'1995-6-1','1998-3-1',100.00,34000.00
FROMDUAL),
TMP1AS
(SELECTADD_MONTHS(BEGAN_DATE,LEVEL-1)T_MONTH
FROM(SELECTTO_DATE(MIN(BEGAN_DATE),'YYYY-MM-DD')BEGAN_DATE,
TO_DATE(MAX(END_DATE),'YYYY-MM-DD')END_DATE
FROMTMP)
CONNECTBYLEVEL<=MONTHS_BETWEEN(END_DATE,BEGAN_DATE)+1)
SELECTTO_CHAR(T_MONTH,'YYYY')ASYEARS,SUM(T.JS)ASZJS
FROMTMPT
INNERJOINTMP1T1
ONT1.T_MONTH>=TO_DATE(T.BEGAN_DATE,'YYYY-MM-DD')AND
T1.T_MONTH<=TO_DATE(T.END_DATE,'YYYY-MM-DD')
GROUPBYTO_CHAR(T_MONTH,'YYYY'),T.BEGAN_DATE
ORDERBYTO_CHAR(T_MONTH,'YYYY')
㈤ sql查询数据,好多都需要按年份查询,按年份查数据有哪几种方式呢
第一种:
dateCol >= '2011-1-1' and dateCol < '2012-1-1'
第二种:
YEAR(dateCol) = 2011
第三种:
DATENAME(yy, dateCol) = '2011'
㈥ SQL: 一般情况按年分组,特殊年份按指定日期分组,SELECT语句怎么写
如果只是一年的话还好说,如果是三四年那就麻烦了,但是如果每一年都要这样还反而简单了,最怕的就是某些特殊要求,那样不好写。
我写一个一年的,写一个全部的。
这是一年的,可能casewhen不能这么直接放在groupby的后面,那么可以先这么改造一下表,然后外面在套一层select就可以实现了。
select case when year(日期)=2017 and month(日期)<5 then '2017-05-01以前'
when year(日期)=2017 and month(日期)>4 then '2017-05-01至年底' else year(日期) end
年份,count(*) from table group by
(case when year(日期)=2017 and month(日期)<5 then '2017-05-01以前'
when year(日期)=2017 and month(日期)>4 then '2017-05-01至年底' else year(日期) end)
全部的
select concat(year(日期),case when month(日期)<5 then 1 else 2 end) 组合字段,count(*) from table group by concat(year(日期),case when month(日期)<5 then 1 else 2 end)
其实是一样的,就是把原表改了一下,只是这两种情况是比较好改的,如果有三年或者四年是需要进行这样的分组,那就麻烦了。如果有这种情况,建议在表中加一个标示字段,那样就能简单一些了。
㈦ SQL按条件汇总求和
如下:
1、第一步,将示例表导入SQL语句中,见下图,转到下面的步骤。
㈧ SQL按年度统计销售额 怎么写
缺字段,你俩表必须有个订单id关联,你自己查一下
如果存在这个订单id的话
比如查2013年的
selectyear(订单.订购日期)年份,sum(订单明细.单价*订单明细.数量)销售金额
from订单,订单明细where订单,订单id=订单明细.订单id
whereyear(订单.订购日期)=2013
groupbyyear(订单.订购日期)
㈨ SQL语句统计每天、每月、每年的销售总额
一、SQL语句统计每年的销售总额
select year(ordertime) 年,
sum(Total) 销售合计
from 订单表
group by year(ordertime)
二、SQL语句统计每月的销售总额
select year(ordertime) 年,
month(ordertime) 月,
sum(Total) 销售合计
from 订单表
group by year(ordertime),
month(ordertime
三、SQL语句统计每日的销售总额
select year(ordertime) 年,
month(ordertime) 月,
day(ordertime) 日,
sum(Total) 销售合计
from 订单表
group by year(ordertime),
month(ordertime),
day(ordertime)
(9)sql按年汇总扩展阅读
mysql查询每天、每周、每月的数据方法
一、查询每天的数据
SELECT
COUNT(1) AS countNumber,
DATE_FORMAT(createTime,'%Y-%m-%d') AS dateTime
FROM
testTable
GROUP BY DATE_FORMAT(createTime,'%Y-%m-%d')
二、查询每周的数据
SELECT
COUNT(1) AS countNumber,
WEEK(createTime) as dateTime
FROM
testTable
GROUP BY WEEK(createTime)
三、查询每月的数据:
SELECT
COUNT(1) AS countNumber,
MONTH(createTime) as dateTime
FROM
testTable
GROUP BY MONTH(createTime)
㈩ sql 怎么查询每一年1到12个月的数据
工具/材料:Management Studio。
1、首先在桌面上,点击“Management Studio”图标。