一table   NO      ||     SN        ||       datetime
me09001    ||  me090010001  ||  2009-9-21 15:34:30
me09001    ||  me090010002  ||  2009-9-21 15:34:35
me09001    ||  me090010004  ||  2009-9-21 15:34:37
me09001    ||  me090010005  ||  2009-9-21 15:35:11
me09001    ||  me090010006  ||  2009-9-21 15:35:30
me09001    ||  me090010007  ||  2009-9-21 15:35:55
me09002    ||  me090020001  ||  2009-9-21 15:40:01
me09002    ||  me090020002  ||  2009-9-21 15:41:07
me09002    ||  me090020003  ||  2009-9-21 15:42:09
me09002    ||  me090020004  ||  2009-9-21 15:44:13
me09003    ||  me090030003  ||  2009-9-21 15:50:32
me09003    ||  me090030002  ||  2009-9-21 15:51:55
me09003    ||  me090030001  ||  2009-9-21 15:52:34
me09001    ||  me090010009  ||  2009-9-21 16:01:15
me09001    ||  me090010008  ||  2009-9-21 16:02:22
me09001    ||  me090010010  ||  2009-9-21 16:03:12
me09002    ||  me090020007  ||  2009-9-21 16:04:01
me09002    ||  me090020009  ||  2009-9-21 16:05:55想求出没个NO,总共用了多少时间(第一台开始--->切换NO的第一台的时间),这为一个投入时间。
me09001:(2009-9-21 15:40:01 - 2009-9-21 15:34:30)+(2009-9-21 16:04:01 - 2009-9-21 16:01:15) 
me09002:(2009-9-21 15:50:32 - 2009-9-21 15:40:01)+(2009-9-21 16:05:55 - 2009-9-21 16:04:01)
me09002: 2009-9-21 16:01:15 - 2009-9-21 15:50:32有办法实现吗?谢谢!

解决方案 »

  1.   

    me09002    ||  me090020009  ||  2009-9-21 16:05:55 
    按你的描述,这一条的终止时间就应该是当前时间对吧
    select no,sum(nvl(ld,sysdate)-datetime)total from(
    select no,sn,datetime,
      lead(datetime)over(order by datetime)ld
    from table1)
    group by no
      

  2.   

    如果不用当前系统时间,那就nvl(ld,sysdate)改成nvl(ld,datetime)
      

  3.   


    高手,请问select no,sn,datetime,lead(datetime)over(orderbydatetime)ldfrom table1是什么技术?是data warehousing吗?