首先说明:本人菜鸟,基本上就相当于没用过ORACLE。
现有这样的问题现有库中有20W条宾馆入住登记信息。要在其中找出先后登记时间不超过5分钟的三个人且为两男一女的情况的记录并导出。请问如何实现。

解决方案 »

  1.   

    要在其中找出先后登记时间不超过5分钟的三个人且为两男一女的情况的记录并导出。-- 把这个SQL 写出来, 然后把查询结果导出到excel里就可以了。 PL/SQL 和 Toad 都可以实现。 ------------------------------------------------------------------------------ 
    Blog: http://blog.csdn.net/tianlesoftware 
    网上资源: http://tianlesoftware.download.csdn.net 
    相关视频:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx 
    DBA1 群:62697716(满); DBA2 群:62697977(满)
    DBA3 群:63306533;     聊天 群:40132017
      

  2.   

    我问的是怎么写这个SQL句或函数!
      

  3.   

    SQL> desc customer
    Name      Type         Nullable Default Comments 
    --------- ------------ -------- ------- -------- 
    ID        NUMBER(20)   Y                         
    CUST_NAME VARCHAR2(10) Y                         
    ID_NUM    VARCHAR2(20) Y                         
    CUST_SEX  VARCHAR2(2)  Y                         
    ROOM_NUM  VARCHAR2(10) Y                         
    IN_TIME   DATE         Y                         
     
    SQL> 
    SQL> WITH t AS (SELECT * FROM customer a
      2              WHERE a.cust_sex='女' AND EXISTS (SELECT 1 FROM customer b WHERE b.cust_sex='男' AND abs(a.in_time-b.in_time)<=5/24/60 HAVING COUNT(*)=2)
      3                AND NOT EXISTS (SELECT 1 FROM customer d WHERE a.cust_sex=d.cust_sex AND abs(a.in_time-d.in_time)<=5/24/60)
      4            )
      5  SELECT * FROM customer c,t WHERE abs(c.in_time-t.in_time)<=5/24/60
      6  ;
     
                       ID CUST_NAME  ID_NUM               CUST_SEX ROOM_NUM   IN_TIME                        ID CUST_NAME  ID_NUM               CUST_SEX ROOM_NUM   IN_TIME
    --------------------- ---------- -------------------- -------- ---------- ----------- --------------------- ---------- -------------------- -------- ---------- -----------
     
    SQL>