初级问题 up有分 关注有分

winder_008 2002-09-12 10:08:17
有一个表 Tab1 表结构如下
字段名 中文解释  类型
  RQ    日期    Date
SJ 时间   varchar2(5)
ZH  数值 Num
表中 记录为 每天 每5分钟 的值
如:
  2002-09-13 00:00 0.2
  2002-09-13 00:05 0.2
  2002-09-13 00:10 0.45
  2002-09-13 00:15 0.3
...
  2002-09-13 23:55 0.2
先在的问题就是 要通过每天将前一天的所有数据每30分钟的数据生成一条记录
方到另外一个相同结构的表中Tab2
字段名 中文解释  类型
  RQ    日期    Date
SJ 时间   varchar2(5)
ZH  数值 Num
如:
 Tab1-------------
 2002-09-13 00:00 0.2
  2002-09-13 00:05 0.2
  2002-09-13 00:10 0.45
  2002-09-13 00:15 0.3
  2002-09-13 00:20 0.2
  2002-09-13 00:25 0.2
  2002-09-13 00:30 0.45
 -----------------------------
变为 Tab2
 2002-09-13 00:30 2.05
我想通过存储过程去实现 然后在orcle
下通过作业 来实现 但是怎么实现呢??



...全文
22 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
qiuyang_wang 2002-09-17
  • 打赏
  • 举报
回复
insert into tab2 ( rq, sj, zh) select rq, max(sj), sum(zh)
from tab1
where rq = sysdate - 1
group by to_char(rq, 'YYYYMMDD') || substr(sj,1,3) || substr(to_char( to_number(substr(sj,4,2)) + 61 , '000'), 1,1)
;
hycao 2002-09-15
  • 打赏
  • 举报
回复
up~~~~~~
wxyq 2002-09-15
  • 打赏
  • 举报
回复
看书吧
================================================================

ok?
wxyq 2002-09-15
  • 打赏
  • 举报
回复
up
================================================================

ok?
yuxuan 2002-09-15
  • 打赏
  • 举报
回复
我也想知道如何自动处理,关注!
anycon 2002-09-14
  • 打赏
  • 举报
回复
up!
sunrisemoonrise 2002-09-13
  • 打赏
  • 举报
回复
关注!
tangss 2002-09-12
  • 打赏
  • 举报
回复
帮你UP一下!
bobfang 2002-09-12
  • 打赏
  • 举报
回复
select sj,sum(zh)
from (select substrb(sj,1,3) ||
decode(sign(substrb(sj,4,2)-30),-1,'00','30') sj, zh
from tab1 where rq=trunc(sysdate)-1) newtab1
group by sj
winder_008 2002-09-12
  • 打赏
  • 举报
回复
怎么没有人呢

高手在那里 高手
yunfengh 2002-09-12
  • 打赏
  • 举报
回复
up
weep_boy 2002-09-12
  • 打赏
  • 举报
回复
请问lj77,group by后面可以用表达式吗?
ERROR 位于第 1 行:
ORA-00979: 不是 GROUP BY 表达式
weep_boy 2002-09-12
  • 打赏
  • 举报
回复
请问lj77(牛) 加61是为什么呢?有什么特殊意义吗?
winder_008 2002-09-12
  • 打赏
  • 举报
回复
现在的问题是

1 我想写成一个存储过程来实现 并且要在数据库中每天去自己去执行

在sqlserver中可以写事务 但是在orcale下怎么实现
2 Tab1中的时间可能有时候不连续 而且每天的00:00值为前一天的最后一个值(24:00)
如:
 Tab1-------------
  2002-09-13 00:05 0.2
  2002-09-13 00:10 0.45
  2002-09-13 00:15 0.3
  2002-09-13 00:20 0.2
  2002-09-13 00:30 0.2

  2002-09-13 00:35 0.45
 2002-09-13 00:40 0.2
 2002-09-13 01:00 0.2

 2002-09-13 23:05 0.2
  2002-09-13 23:15 0.45
 2002-09-13 23:20 0.2
  2002-09-13 23:25 0.45
 2002-09-13 23:30 0.2

  2002-09-13 23:35 0.45
 2002-09-13 23:40 0.2
  2002-09-13 23:45 0.45
 2002-09-13 23:50 0.2
  2002-09-13 23:55 0.2
 2002-09-14 00:00 0.2

 -----------------------------
变为 Tab2
 2002-09-13 00:30 1.35
 2002-09-13 01:00 0.85
 2002-09-13 01:30 0.85
 2002-09-13 02:00 0.00
 2002-09-13 02:30 0.00
 2002-09-13 03:00 0.00
 2002-09-13 03:30 0.00
...  
2002-09-13 23:00 1.50
2002-09-13 23:30 1.70
由于对orcle不熟悉请写出详细过程 如果分数不够可以 再加

weep_boy 2002-09-12
  • 打赏
  • 举报
回复
UPUP!!!
bzszp 2002-09-12
  • 打赏
  • 举报
回复
用job;
VARIABLE jobno number;
begin
DBMS_JOB.SUBMIT(:jobno,
'insert into ....;', //操作
SYSDATE, 'SYSDATE + 1');//每天一次
commit;
end;
/
winder_008 2002-09-12
  • 打赏
  • 举报
回复
如何在数据库中每天自动去执行呢??

lj77 2002-09-12
  • 打赏
  • 举报
回复
这样就更完美了:
insert into tab2 ( rq, sj, zh) select rq, max(sj), sum(zh)
from tab1
where rq = sysdate - 1
group by to_char(rq, 'YYYYMMDD') || substr(sj,1,3) || substr(to_char( to_number(substr(sj,4,2)) + 61 , '000'), 1,1)
;

================================================================

CSDN 论坛助手 Ver 1.0 B0402提供下载。 改进了很多,功能完备!

★ 浏览帖子速度极快![建议系统使用ie5.5以上]。 ★ 多种帖子实现界面。
★ 保存帖子到本地[html格式]★ 监视您关注帖子的回复更新。
★ 可以直接发贴、回复帖子★ 采用XML接口,可以一次性显示4页帖子,同时支持自定义每次显示帖子数量。可以浏览历史记录!
★ 支持在线检测程序升级情况,可及时获得程序更新的信息。

★★ 签名 ●
可以在您的每个帖子的后面自动加上一个自己设计的签名哟。

Http://www.ChinaOK.net/csdn/csdn.zip
Http://www.ChinaOK.net/csdn/csdn.rar
Http://www.ChinaOK.net/csdn/csdn.exe [自解压]

lj77 2002-09-12
  • 打赏
  • 举报
回复
呵呵,在我的某些项目中也遇过这样“冗余”的表,这在大学的那帮老学究面前也许是不可原谅的吧,不过我们会经常被强制要求使用这样冗余的表结构,并且不得更改!所以学数据库的人也要学随遇而安啊!!~~~
================================================================

CSDN 论坛助手 Ver 1.0 B0402提供下载。 改进了很多,功能完备!

★ 浏览帖子速度极快![建议系统使用ie5.5以上]。 ★ 多种帖子实现界面。
★ 保存帖子到本地[html格式]★ 监视您关注帖子的回复更新。
★ 可以直接发贴、回复帖子★ 采用XML接口,可以一次性显示4页帖子,同时支持自定义每次显示帖子数量。可以浏览历史记录!
★ 支持在线检测程序升级情况,可及时获得程序更新的信息。

★★ 签名 ●
可以在您的每个帖子的后面自动加上一个自己设计的签名哟。

Http://www.ChinaOK.net/csdn/csdn.zip
Http://www.ChinaOK.net/csdn/csdn.rar
Http://www.ChinaOK.net/csdn/csdn.exe [自解压]

lj77 2002-09-12
  • 打赏
  • 举报
回复
insert into tab2 ( rq, sj, zh) select rq, max(sj), sum(zh)
from tab1
where rq = sysdate - 1
group by rq, substr(sj,1,3) || substr(to_char( to_number(substr(sj,4,2)) + 61 , '000'), 1,1)
;
================================================================

CSDN 论坛助手 Ver 1.0 B0402提供下载。 改进了很多,功能完备!

★ 浏览帖子速度极快![建议系统使用ie5.5以上]。 ★ 多种帖子实现界面。
★ 保存帖子到本地[html格式]★ 监视您关注帖子的回复更新。
★ 可以直接发贴、回复帖子★ 采用XML接口,可以一次性显示4页帖子,同时支持自定义每次显示帖子数量。可以浏览历史记录!
★ 支持在线检测程序升级情况,可及时获得程序更新的信息。

★★ 签名 ●
可以在您的每个帖子的后面自动加上一个自己设计的签名哟。

Http://www.ChinaOK.net/csdn/csdn.zip
Http://www.ChinaOK.net/csdn/csdn.rar
Http://www.ChinaOK.net/csdn/csdn.exe [自解压]

加载更多回复(1)

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧