SELECT WORKER_NO 
        FROM (SELECT WORKER_NO FROM INP_LINE_WORKER 
              WHERE  LINE_NO = 'BA')
              ORDER BY WORKER_NO)
              UNION
              (SELECT WORKER_NO FROM HIS_LINE_WORKER
              WHERE LINE_NO = 'BA'
              AND WORKER_LEAVING_DATETIME > '20100914121001'
              ORDER BY WORKER_ARRIVAL_DATETIME ,WORKER_LEAVING_DATETIME)
无法通过,有问题吗?

解决方案 »

  1.   

    SELECT WORKER_NO  
      FROM (SELECT WORKER_NO FROM INP_LINE_WORKER  
      WHERE LINE_NO = 'BA')
      UNION
      (SELECT WORKER_NO FROM HIS_LINE_WORKER
      WHERE LINE_NO = 'BA'
      AND WORKER_LEAVING_DATETIME > '20100914121001')
      ORDER BY WORKER_NO
    在外部排序
      

  2.   

     select WORKER_NO from 
    (SELECT WORKER_NO,WORKER_ARRIVAL_DATETIME ,WORKER_LEAVING_DATETIME,0 flag FROM INP_LINE_WORKER  
      WHERE LINE_NO = 'BA'
      UNION
     SELECT WORKER_NO,WORKER_ARRIVAL_DATETIME ,WORKER_LEAVING_DATETIME,1,flag FROM HIS_LINE_WORKER
      WHERE LINE_NO = 'BA'
        AND WORKER_LEAVING_DATETIME > '20100914121001')
     order by flag,decode(flag,0,WORKER_NO,WORKER_ARRIVAL_DATETIME),decode(flag,0,0, WORKER_LEAVING_DATETIME)
      

  3.   

    order by 是对最终的结果进行排序,你在半截排序不符合语法.
      

  4.   

    报的什么错误啊。
    1.时间格式可能不对,如果数据库存储的是date型,要to_char后再比较
    2.order by 用的不对,
    SELECT WORKER_NO  
      FROM (SELECT WORKER_NO FROM INP_LINE_WORKER  
      WHERE LINE_NO = 'BA')
      ORDER BY WORKER_NO)
      UNION
      (SELECT WORKER_NO FROM 
       (SELECT WORKER_NO FROM HIS_LINE_WORKER
         WHERE LINE_NO = 'BA'
           AND WORKER_LEAVING_DATETIME > '20100914121001'
      ORDER BY WORKER_ARRIVAL_DATETIME ,WORKER_LEAVING_DATETIME))
      

  5.   

    --union 在合并的时候就是默认按第一列排序的,所以不需要写order by,你把他写在里面是语法不运行的,要写也的在最外面写
      SELECT WORKER_NO  
      FROM (SELECT WORKER_NO FROM INP_LINE_WORKER  
      WHERE LINE_NO = 'BA'))
      UNION
      (SELECT WORKER_NO FROM HIS_LINE_WORKER
      WHERE LINE_NO = 'BA'
      AND WORKER_LEAVING_DATETIME > '20100914121001'
      )
      

  6.   

    通过这个我又想到一个问题SELECT WORKER_NO  
      FROM (SELECT WORKER_NO FROM INP_LINE_WORKER  
      WHERE LINE_NO = 'BA'))
      UNION
      (SELECT WORKER_NO FROM HIS_LINE_WORKER
      WHERE LINE_NO = 'BA'
      AND WORKER_LEAVING_DATETIME > '20100914121001'
      )和SELECT DISTINCT(WORKER_NO)
      FROM (SELECT WORKER_NO FROM INP_LINE_WORKER  
      WHERE LINE_NO = 'BA'))
      UNION ALL
      (SELECT WORKER_NO FROM HIS_LINE_WORKER
      WHERE LINE_NO = 'BA'
      AND WORKER_LEAVING_DATETIME > '20100914121001'
      )
    ORDER BY WORKER_NO哪个效率好呢?
      

  7.   

    没有为什么 - - ~ ! 就是orderby放里面就是不让你通过
      

  8.   


    这几天我还是偶尔在看,minitoy你们几个好像是有点闲哦???经常看就你们几个在回答问题。
    跟我上个月一样,没事天天逛CSDN,我也想啊!我想得红花啊 哈哈哈