现在有表 Effect 里有字段 id,train_id,CoalType,area,Evaluatedate
表T_PH 里有字段 id,train_id,ph_value,collection_time
现在要给Effect  写一视图
要把T_PH里的ph_value 加入到视图里去
 
Effect 和 T_PH 的关系 是 两个train_id 匹配 但是train_id 不是唯一字段
也就是说 表t_ph里可能有很多train_id重复的值
现在要根据 t_ph表里的collection_time 按desc排序,然后collection_time 要小于 表里的Effect 然后取结果 集的第一条就能和effect匹配上视图不知道怎么写.请各位求救了

解决方案 »

  1.   

    然后collection_time 要小于 表里的Effect 然后取结果 集的第一条就能和effect匹配上
    ????
      

  2.   

    我的错,应该是collection_time 要小于Effect  表里的Evaluatedate 字段 
    就对了..
      

  3.   

    现在有表 Effect 里有字段 id,train_id,CoalType,area,Evaluatedate
    表T_PH 里有字段 id,train_id,ph_value,collection_time
    现在要给Effect 写一视图
    要把T_PH里的ph_value 加入到视图里去
     
    Effect 和 T_PH 的关系 是 两个train_id 匹配 但是train_id 不是唯一字段
    也就是说 表t_ph里可能有很多train_id重复的值
    现在要根据 t_ph表里的collection_time 按desc排序,然后collection_time 要小于Effect  表里的Evaluatedate然后取结果 集的第一条就能和effect匹配上视图不知道怎么写.请各位求救了
      

  4.   

    莫非是要这个?
    create or replace view view_effect_ph
    as
    select id,train_id,CoalType,area,Evaluatedate,ph_value from (
    select a.id,a.train_id,a.CoalType,a.area,a.Evaluatedate, b.ph_value, row_number()over(order by b.collection_time desc) rn
      from Effect a,T_PH b
     where a.train_id=b.train_id and b.collection_time<a.Evaluatedate) where rn=1;