DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: cuiqingbo
今日帖子: 22
在线用户: 9
导航: 论坛 -> 数据库专区 斑竹:liumazi,waterstone  
作者:
男 kylix2008 (kylix2008) ★☆☆☆☆ -
普通会员
2018/5/1 21:41:56
标题:
这样的需求该如何写脚本? 浏览:1246
加入我的收藏
楼主: Oracle下有这样一张表(实际有几十万条数据),要查出在任意某个连续的6个月中销售金额之和达到过300万的员工名单(每月的月初到月末为1个月)。重复一遍,是任意连续的6个月。

Oracle为11g以上的版本。

Oracle下该如何写SQL语句?
此帖子包含附件:
PNG 图像
大小:48.0K
----------------------------------------------
-
作者:
男 bahamut8348 (leonna) ★☆☆☆☆ -
普通会员
2018/5/2 8:51:19
1楼: 先按月汇总咯。
然后就是一些分析函数了。

这个不是很困难
----------------------------------------------
--
作者:
男 luckyrandom (luckyrandom) ★☆☆☆☆ -
普通会员
2018/5/2 9:13:53
2楼: Oracle函数不太清楚。。但对SQL Server,则可以用CROSS APPLY实现,也就是对每个人每个月做一次遍历
----------------------------------------------
SQL SERVER DBA QQ:315054403 曾经的Delphier  缘在上海
作者:
男 vga (vga) ★☆☆☆☆ -
盒子活跃会员
2018/5/2 14:02:12
3楼: 这个是 mysql 上的一个 类似的存储过程:

BEGIN
  select min(Atime) from t_month into @m;
  select max(Atime) from t_month into @n; 
  truncate t_rlt;
  
  while @m <= @n do 
     insert ignore into t_rlt (name)
   select name from t_month 
   where aTime between @m and date_add(@m, interval 6 month)
   having sum(data) >= 1000;
   
   set @m = date_add(@m, interval 1 month);  
  end while;
  
  select name from t_rlt; 
END
----------------------------------------------
-
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行132.8125毫秒 RSS