Order表里有 如下几个字段:order.trans,  order.status, order.orderId, order.OrderName
    OrderALLOC表里有如下子段: OrderALLOC.exec_qty,order_id 
   想建的视图有如下列  OrderID, OrderName, 数量  
   数量的设法为 order.status='ready' 时 
                order.trans='buy'的所有记录的OrderALLOC.exec_qty字段的和(SUM)与
                order.trans='sell'的所有记录的OrderALLOC.exec_qty字段的和(SUM)相减                order.status='ready' 以外的情况,数量设空     两个表用 order_id 关联     请高手帮帮忙哦

解决方案 »

  1.   

    我感觉楼主的描述可能不清楚,比如status和trans两个字段是什么关系,或者说什么时候status='ready',trans在'buy'和'sell'状态时的status是什么等等……
      

  2.   

    select order.OrderID,order.OrderName
    case order.status when 'ready' then 
       ( select sum(t.c_number) from
          ( 
          select sum(rderALLOC.exec_qty)  as c_number
          from OrderALLOC c,order o 
          where c.order_id=o.order_id and o.status='ready' and o.trans='sell'
          union all
          select -sum(rderALLOC.exec_qty)  as c_number
          from OrderALLOC c,order o 
          where c.order_id=o.order_id and o.status='ready' and o.trans='buy'
          ) t
        )
        else 0
     from OrderALLOC c,order o
     where c.order_id=o.order_id
      

  3.   

    简单测试过了,速度应该不会快的,就是为了取值。主要是
    select sum(t.c_number) from

    select sum(rderALLOC.exec_qty) as c_number
    from OrderALLOC c,order o 
    where c.order_id=o.order_id and o.status='ready' and o.trans='sell'
    union all
    select -sum(rderALLOC.exec_qty) as c_number
    from OrderALLOC c,order o 
    where c.order_id=o.order_id and o.status='ready' and o.trans='buy'
    ) t