我从一张表里面取出一列,然后给这一列的每一个列值填充上一个对应的日期,日期的开始结束时间由参数给出。日期递增,步长为1天。
我原表取出的字段为
工号
000001
000002
000003
000004
输入参数日期 2008-06-01 到2008-06-03 要实现的结果是
工号 日期
000001 2008-06-01
000001 2008-06-02
000001 2008-06-03
000002 2008-06-01
000002 2008-06-02
000003 2008-06-03
……请问在oracle中如何实现
我原表取出的字段为
工号
000001
000002
000003
000004
输入参数日期 2008-06-01 到2008-06-03 要实现的结果是
工号 日期
000001 2008-06-01
000001 2008-06-02
000001 2008-06-03
000002 2008-06-01
000002 2008-06-02
000003 2008-06-03
……请问在oracle中如何实现
解决方案 »
- 32位oracle11g 安装在64位的server2008下需要做什么更改?
- 死锁!!!!!!!!!!!!!!!!!!!!!1
- sqlplus连接服务器出现的问题
- 这样的结构如何设计表
- 从sqlserver2000导入oracle9i的问题(斑竹请进!)
- 如何将一台服务器上的Oracle数据库完全地迁移到另一台机器上?
- 请教:导出库与导入库的字符集不同,如何能够完成导入?___等待中
- 请问我怎么才能看到有多少数据库和库内的数据表
- 这里有不少比较好的oracle技术文章
- ◆◆◆大家帮忙!寻求现在企业还在使用的各种数据库系统不同版本的数据类型列表!只要您将下列数据库系统之一的数据类型发送给我,我将您
- Oracle问题--关于select * from sys.col
- 有些难度的报表,不定行,不定列。
如果是你写的结果,不需要存储过程,一条SQL就行了先用起始日期和结束日期生成总的日期天数,然后来个笛卡尔积就行了
输入日期为:start_day 结束日期为:end_dayselect a.a,b.dates
from a,
( select :start_day+rownum-1 dates
from dual
connect by rownum<=:end_day-:start_day+1
) b
000001 2008-06-01
000001 2008-06-02
000001 2008-06-03
000002 2008-06-01
000002 2008-06-02
000002 2008-06-01
....
SELECT t1.工号, t2.dat
FROM (SELECT 工号, 1 rn FROM t) t1
LEFT JOIN (SELECT to_date('2008-06-01', 'yyyy-mm-dd') + rownum - 1 dat
,1 rn
FROM dual
CONNECT BY rownum <= to_date('2008-06-03', 'yyyy-mm-dd') -
to_date('2008-06-01', 'yyyy-mm-dd') + 1) t2 ON t1.rn = t2.rn
select a.a,b.dates
from a,
( select :start_day+rownum-1 dates
from dual
connect by rownum<:end_day-:start_day+1
) b要把<=改成= ??