现在有两张表,
key 名称 周期(小时) 开始时间 完成时间
0_ zzzz 160 2002-1-18 2002-1-20
1_ yyyy 40 2002-1-16 2002-1-18
10_ pppp 208 2002-1-9 2002-1-10
11_ oooo 64 2002-1-14 2002-1-16
12_ nnnn 184 2002-1-9 2002-1-10
13_ mmmm 240 2002-1-13 2002-1-14
14_ llll 240 2002-1-10 2002-1-10
15_ kkkk 200 2002-1-10 2002-1-10
16_ jjjj 200 2002-1-10 2002-1-10
17_ iiii 168 2002-1-17 2002-1-20
18_ hhhh 168 2002-1-9 2002-1-10
19_ gggg 80 2002-1-16 2002-1-16
2_ xxxx 56 2002-1-15 2002-1-16
20_ ffff 208 2002-1-16 2002-1-16
21_ eeee 192 2002-1-16 2002-1-16
22_ dddd 120 2002-1-16 2002-1-16
23_ cccc 144 2002-1-16 2002-1-16
24_ bbbb 240 2002-1-16 2002-1-18
25_ aaaa 120 2002-1-21 2002-1-25
3_ wwww 64 2002-1-10 2002-1-15
4_ vvvvv 64 2002-1-16 2002-1-16
5_ uuuu 320 2002-1-9 2002-1-10
6_ tttt 56 2002-1-16 2002-1-16
7_ ssss 56 2002-1-10 2002-1-13
8_ rrrr 120 2002-1-3 2002-1-10
9_ qqqq 208 2002-1-9 2002-1-10
par key
19_ 0_
5_ 1_
8_ 2_
0_ 3_
0_ 4_
22_ 5_
23_ 6_
23_ 7_
24_ 8_
24_ 9_
24_ 10_
0_ 11_
24_ 12_
24_ 13_
24_ 14_
24_ 15_
24_ 16_
24_ 17_
24_ 18_
24_ 19_
24_ 20_
24_ 21_
25_ 22_
25_ 23_
25_ 24_
end_ 25_

解决方案 »

  1.   

    可能是我没有表达清楚,par 是 key 的上层,表2中的 25_ 的下层有 22_,23_24_ 那么表1中的数据就可以根据 25_的开始时间来计算,25_ 的开始时间是2010-4-14 再根据 表1中的 22_,23_,24_的周期算出各自的完成时间与开始时间,完成时间是25_ 的结束时间的前一天,也就是 2010-4-13  开始时间就是根据周期来算了,以此来算出表1中所有的开始完成时间。不知道这回说明白没?
      

  2.   

    我再重新说一遍,
    有两张表,
    第一个是数据表,第二个是关系表,
    第二个表中的 key 为 25_ 是最高层,它的下一层是24_,23_,22,再下一层是12_~21_ 以此类推
    如果给出了,表1中 25_的完成时间的话,需要根据表2中的关系,算出表1中所有行的开始时间与完成时间
    例如,我给出了25_ 的完成时间为2010-4-29,那么表1中的 25_的开始时间为 (2010-4-29)-120/8=2010-4-14,那么它的下一层24_,23_,22_的完成时间就是2010-4-13(时间是往前推的) 再根据各自的周期算出各自的开始时间,再根据它们的开始时间算出 12_~21_的完成时间,还有它们的开始时间,以此类推,算出表中所有的行的开始时间和完成时间。不知道这回说明白了没有?
      

  3.   

    看晕了,又或者,楼主把题说的复杂了些
    问题1 表里的 ID 小时 开始时间 结束时间 字段,其实已经都有了,算它干吗?
    问题2 表里的值会变吗? 如果不变的话,只要达到目的,写个sql 或 prc 先全部计算一遍。以后随便你怎么查不就行了?
      

  4.   

    我看晕了。我觉得要是数据不是实时变动的,还是记录在表中查询比较快一些我觉得你的需求可以通过书查询来实现select
    *
    from tablename
    start with 
    connect by 具体的自己去查询吧
      

  5.   

    key 名称 周期(小时) 开始时间 完成时间
    0_ zzzz 160 2002-1-18 2002-1-20
    1_ yyyy 40 2002-1-16 2002-1-18
    相同的日期间隔 周期怎么不一样
    开始时间、完成时间 跟周期有关系吗?我还是没看懂 
    你好歹用个两个表能对应起来的数据