当前位置:首页 » 编程语言 » 统计周期sql
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

统计周期sql

发布时间: 2022-09-21 02:30:31

① 求一条sql语句算出每年的周期问题!

-- 这里设置 星期一 为 每周的第一天。
SET DATEFIRST 1
GO

SELECT
YEAR(everyDay) AS [年份],
DATEPART(ww, everyDay) AS [周期],
MIN(everyDay) AS [起始日期],
MAX(everyDay) AS [结束日期]
FROM
(
SELECT
Convert(datetime, '2011-01-01', 120) + number AS everyDay
FROM
master..spt_values
WHERE
type='P'
AND Convert(datetime, '2011-01-01', 120) + number < Convert(datetime, '2012-01-01', 120)
) tempView
GROUP BY
YEAR(everyDay),
DATEPART(ww, everyDay)
GO

年份 周期 起始日期 结束日期
2011 1 2011-01-01 00:00:00.000 2011-01-02 00:00:00.000
2011 2 2011-01-03 00:00:00.000 2011-01-09 00:00:00.000
2011 3 2011-01-10 00:00:00.000 2011-01-16 00:00:00.000
2011 4 2011-01-17 00:00:00.000 2011-01-23 00:00:00.000
2011 5 2011-01-24 00:00:00.000 2011-01-30 00:00:00.000
。。。。。。

② (sql设计)根据日、周、月、季度四个时间周期来统计出商品的销量,智能分析热销、一般、滞销商品的情况

汇总数据是基于明细交易数据经过计算得到的,你要考虑的是保证明细交易数据表的字段满足使用需要,只要明细交易数据表提供足够多的字段,要统计什么样的数据就写SQL语句汇总就OK了。
有时也做汇总后结构的数据表,但一般都不放临近计算的汇总数据,因为刚刚发生的业务有可能会变化。
比如一笔销售业务卖出去A商品100件,800元。你放到周报表中了,但是过几天又退回来了,你从汇总表中查有这100个,但是从明细交易表汇总就没有这100个,造成了数据的不一致,数据不一致对一个管理系统来说是个致命的问题。这里简单举个例子。

③ 如何用一段SQL查询不同时间周期内的账户数

查询前两列作为主表,关联三个子查询,通过部门和代理商left join,查询字段即主表字段+子查询结果字段。

④ sql 计算自然月周数按星期来计算,然后统计每周

没太理解你截图代码什么意思,我下面的例子可以通过输入年月得到该月份的总周数,使用的数据库是SQL SERVER 2005

DECLARE@yearint,@monthint,@tempdatadatetime,@sumdaymoney
SELECT@year=2015,@month=11
--先拼接成参数月份的第一天
SELECT@tempdata=convert(varchar(4),@year)+'-'+convert(varchar(2),@month)+'-01'
--统计参数月份总天数
SELECT@sumday=datediff(day,@tempdata,dateadd(month,1,@tempdata))
--计算参数月份一共几周
SEELCTceiling((@sumday-(casewhendatename(weekday,@tempdata)='星期一'then7.0
whendatename(weekday,@tempdata)='星期二'then6.0
whendatename(weekday,@tempdata)='星期三'then5.0
whendatename(weekday,@tempdata)='星期四'then4.0
whendatename(weekday,@tempdata)='星期五'then3.0
whendatename(weekday,@tempdata)='星期六'then2.0else1.0end))/7.0)+1

⑤ 求统计每周记录数的SQL语句

declare
@weeknum
int,@year
int,@month
int;--这里是周数、年、月
declare
@weekday
int,@starttime
datetime,@endtime
datetime,@timechar
varchar(20);--星期几、一周开始、一周结束、当月第一天字符串
declare
@datepart
int;--需要查询的周首天与月首天的时间差
--赋值2010年3月
第5周
select
@year=2010,@month=3,@weeknum=5;
set
@timechar=cast(@year
as
varchar)+'-'+cast(@month
as
varchar)+'-1'
--拼接出这个月的第一天
select
@timechar
select
@weekday=datepart(weekday,@timechar)
set
@datepart=(@weeknum-2)*7+(8-@weekday)
select
@starttime=dateadd(dd,@datepart,@timechar)
select
@endtime=dateadd(dd,7,@starttime)
--消除到上个月

下个月的出入部分
if
(@starttime<@timechar)
set
@starttime=@timechar
if
(@endtime>dateadd(mm,1,@timechar))
set
@endtime=dateadd(mm,1,@timechar)
select
@weeknum,@starttime,@endtime
--然后就是使用@starttime,@endtime
select
count(*)
from
tb
where
时间>=@starttime
and
时间<@endtime

⑥ 如何写SQL语句按周统计和按季度统计

--sqlserver2005语法统计按周,月,季,年。
--按日
--selectsum(price),day([date])fromtable_namewhereyear([date])=
'2006'groupbyday([date])
--按周quarter
selectsum(price),datename(week,price_time)fromble_namewhere
year(price_time)='2008'groupbydatename(week,price_time)
--按月
selectsum(price),month(price_time)fromble_namewhereyear(price_time)
='2008'groupbymonth(price_time)
--按季
selectsum(price),datename(quarter,price_time)fromble_namewhere
year(price_time)='2008'groupbydatename(quarter,price_time)
--按年
selectsum(price),year(price_time)fromble_namewhere
year(price_time)>='2008'groupbyyear(price_time)

⑦ sql 按周统计

去企业管理器,到管理里面看看作业
新建一个作业
在步骤-新建-命令 里面写你的sql语句
在调度-新建调度-更改 在里面选择每周-周日 时间为23:59:00
其他的地方你自己看看,随便填
这样每个星期天的23:59分,数据库就会自动的执行你写的那个sql语句

⑧ 求统计每周记录数的SQL语句

新建一个周信息表,存储周信息(周号、周开始时间、周结束时间)
你的周是按照自然周,还是按月结的周?自然周就不用说了,正常的周一到周日。按月结的,就是所有的周都落在一个月内,不会存在跨月的情况。比如2010年1月第一周就是 2010年1月1日到2010年1月9日,这样一周可能大于七天,也可能小于7天。

按照自然周的给你个方法:

create table bga050t (weak_no varchar(10),
strt_dt datetime,
end_dt datetime
CONSTRAINT [PK_bga050t] PRIMARY KEY CLUSTERED
(
[weak_no]
) ON [PRIMARY]
)

declare @weak_no varchar(18)
declare @strt_dt datetime
declare @end_dt datetime
declare @n int

set @n=1
set @strt_dt = '2007-12-31'
set @weak_no = ''

WHILE(@strt_dt < '2021-01-04')
BEGIN
IF @weak_no<>left(convert(varchar(10),@strt_dt,120),8)
BEGIN
set @weak_no=left(convert(varchar(10),@strt_dt,120),8)
set @n=1
end
set @end_dt= dateadd(d,6,@strt_dt)
insert into bga050t (weak_no,strt_dt,end_dt)
values(@weak_no+convert(varchar,@n),@strt_dt,@end_dt)

set @n=@n+1
set @strt_dt=dateadd(d,1,@end_dt)
END

你要查询年月周只需要把周号分解就可以了。

select a.* from 表 inner join
bga050t b on a.dt between b.strt_dt and b.end_dt
where left(b.weak_no,7)='2009-02' and [周数] = right(b.weak_no,1)

⑨ sql统计每周日数据

题目没看懂,提供一些有用的函数
SELECTDATEPART(WEEKDAY,GETDATE())AS'今天是本周第几天',DATEPART(WEEK,GETDATE())AS'今天在本年第几周';