本人做管理的,对SQL不太熟悉,特请教坛子里的大侠两个sql查询的写法1:access 数据库
2:数据表table1
字段: p_code, issue_date, issue_num
典型数据:101,2016/12/1,45
102,2016/12/1,89
101,2016/12/3,44
....a:我想以今天的时间为时间点,找出这样的一个产品。以这个产品在过去的10个记录(天数有可能不连续,因为有周末,或者那天根本就没领用)的平均值为基础(今天的不列入均值计算),过去的10个记录每次领用的数值都在平均值上下5%波动,而今天的波动超过20%
每天计算作为预警。
今天比昨天的简单比较通过学习http://bbs.csdn.net/topics/390704568这个帖子用left join我会了,再次感谢!
b:包含今天,同一个产品在过去的10个记录的领用总和达到一定数量比如500。每天查询找出这样的商品。
我想在where里面用sum函数结果不行,估计得用临时表,但又不会.....
请大概指点一下,我自己可以在access中调试,谢谢!
谢谢!
2:数据表table1
字段: p_code, issue_date, issue_num
典型数据:101,2016/12/1,45
102,2016/12/1,89
101,2016/12/3,44
....a:我想以今天的时间为时间点,找出这样的一个产品。以这个产品在过去的10个记录(天数有可能不连续,因为有周末,或者那天根本就没领用)的平均值为基础(今天的不列入均值计算),过去的10个记录每次领用的数值都在平均值上下5%波动,而今天的波动超过20%
每天计算作为预警。
今天比昨天的简单比较通过学习http://bbs.csdn.net/topics/390704568这个帖子用left join我会了,再次感谢!
b:包含今天,同一个产品在过去的10个记录的领用总和达到一定数量比如500。每天查询找出这样的商品。
我想在where里面用sum函数结果不行,估计得用临时表,但又不会.....
请大概指点一下,我自己可以在access中调试,谢谢!
谢谢!
下面是计算过去10条最近记录的和与平均值的SQL,你可以参考下select t.p_code,sum(t.issue_num),avg(t.issue_num) from (
SELECT t1.p_code,t1.issue_date,t1.issue_num,count(t2.id)+1 as SeqNo
FROM Table1 as t1
left join Table1 as t2 on t1.p_code=t2.p_code and t1.issue_date>t2.issue_date
where t1.issue_date<now
group by t1.p_code,t1.issue_date,t1.issue_num
) as t where t.SeqNo<=10
group by t.p_code