问题1:
有这样的表 MyRecord:
monthid ——月份
income —— 收入
out——支出
monthid income out
2006-1 1000 200
2006-2 2000 500
2006-3 200 1000
……要求根据这个表创建一个视图 MyRecordView:
save——节余
monthid save
2006-1 800
2006-2 2300
2006-3 1500
……问题2:
有这样一个表RecordA:
recordid starttime endtime status
1 2007-5-1 10:01 2007-5-1 17:00 close
2 2007-5-1 17:01 2007-5-2 00:00 close
3 2007-5-2 00:01 2007-5-2 10:00 close
4 2007-5-2 10:01 2007-5-2 17:00 open
5 2007-5-2 17:01 2007-5-3 00:00 open
6 2007-5-3 00:01 2007-5-3 10:00 close
7 2007-5-3 10:01 2007-5-3 17:00 close
8 2007-5-3 17:01 2007-5-4 00:00 open
……
要求根据这张表在生成一个视图RecordA_View
recordid starttime endtime last status
1 2007-5-1 10:01 2007-5-2 10:00 24h0m0s close
2 2007-5-3 00:01 2007-5-3 17:00 17h0m0s close
……请问oracle如何用存储过程或者sql语句实现?请教各位高人指点,感激不尽!
有这样的表 MyRecord:
monthid ——月份
income —— 收入
out——支出
monthid income out
2006-1 1000 200
2006-2 2000 500
2006-3 200 1000
……要求根据这个表创建一个视图 MyRecordView:
save——节余
monthid save
2006-1 800
2006-2 2300
2006-3 1500
……问题2:
有这样一个表RecordA:
recordid starttime endtime status
1 2007-5-1 10:01 2007-5-1 17:00 close
2 2007-5-1 17:01 2007-5-2 00:00 close
3 2007-5-2 00:01 2007-5-2 10:00 close
4 2007-5-2 10:01 2007-5-2 17:00 open
5 2007-5-2 17:01 2007-5-3 00:00 open
6 2007-5-3 00:01 2007-5-3 10:00 close
7 2007-5-3 10:01 2007-5-3 17:00 close
8 2007-5-3 17:01 2007-5-4 00:00 open
……
要求根据这张表在生成一个视图RecordA_View
recordid starttime endtime last status
1 2007-5-1 10:01 2007-5-2 10:00 24h0m0s close
2 2007-5-3 00:01 2007-5-3 17:00 17h0m0s close
……请问oracle如何用存储过程或者sql语句实现?请教各位高人指点,感激不尽!
解决方案 »
- 关于把java获取的当前时间插入oralc的问题
- oracle判断时间范围 <====>(参与就有分)
- ASP连接Oracle 问题
- orcal的jobs问题,大家来看看
- 一个蠢问题:create package后面跟is和跟as有啥区别啊???
- 请问,oracle 8.05的数据如何导入到oracle8.17中
- 查询数据库发现ORA-01406错误,请问高手怎么解决?
- 关于oracle导库的问题!
- 当要插入的数据宽度大于Oracle数据表的字段宽度,怎样来增大字段的宽度呢?救命啊!(回复者有分)
- =======推荐几本oracle的好书或者讲数据库的好书。谢谢了!!!======
- ORACLE 新手求救,大哥们帮帮偶.
- RMAN and EXPORT about the database consistency
CREATE VIEW MyRecordView AS
SELECT monthid, (income - out) AS save
FROM MyRecord
/
5/2不也有一笔为close吗?为什么不算进去呢?业务规则是什么?
问题2:表中记录的是定时取得的设备状态,现在关心的是设备“close”状态,要将设备每次“close”状态(可能包含几个时间段,如果是几个连续的时间段,就将几个连续时间段整理成一条记录)整理成一条记录然后生成一个视图。
请教各位高手!谢谢了!
SELECT MONTHID, SUM(INCOME - OUT) OVER (ORDER BY MONTHID)
FROM MyRecord;
FROM (
SELECT A.STARTTIME, LEAD(ENDTIME, 1, NULL) OVER (ORDER BY STARTTIME) AS ENDTIME, A.STATUS, PREVFLAG
FROM (
SELECT A.RECORDID, A.STARTTIME, A.ENDTIME, A.STATUS,
ABS(NVL(LAG(ENDTIME, 1, NULL) OVER (ORDER BY STARTTIME) + 1/1440 - STARTTIME, -1)) AS PREVFLAG,
ABS(NVL(LEAD(STARTTIME, 1, NULL) OVER (ORDER BY STARTTIME) - 1/1440 - ENDTIME, -1)) AS NEXTFLAG
FROM RECORDA A
WHERE STATUS = 'close'
) A
WHERE PREVFLAG + NEXTFLAG > 0
)
WHERE PREVFLAG > 0