我看上面的数据好象结果集当中落下了pre_d表的第二条记录,不知道是或不是,如果是,那么就是一个多表合并的问题。
那么就先将所有表做一次扩充,使得所有表的字段能对齐,没有的内容,按上面的结果集要求用0填充,然后使用union串接起来成为新表。

解决方案 »

  1.   

    select 
          pds_id as pds,pre_time as pre_time,
          pre_id as pre_id,p_qty as p_qty,
          0 as i_i_d_id,0 as i_i_dtime,0 as i_qty,
          0 as pre_q_id,0 as pre_q_time,0 as qqty
    from pre_d
    union
    select 
          pds_id as pds,0 as pre_time,
          0 as pre_id,0 as p_qty,
          i_i_d_id as i_i_d_id,i_i_dtime as i_i_dtime,i_qty as i_qty,
          0 as pre_q_id,0 as pre_q_time,0 as qqty
    from i_i_d
    union
    select 
          pds_id as pds,0 as pre_time,
          0 as pre_id,0 as p_qty,
          0 as i_i_d_id,0 as i_i_dtime,0 as i_qty,
          pre_q_id as pre_q_id,pre_q_time as pre_q_time,qqty as qqty
    from pre_q
      

  2.   

    select pds_id as pds,
           case [pre_time] when is null then '0' else  [pre_time] end as pre_time,
           case [pre_id] when is null then '0' else  [pre_id] end as pre_id,
           case [p_qty] when is null then '0' else  [p_qty] end as p_qty,
           case [i_i_d_id] when is null then '0' else  [i_i_d_id] end as i_i_d_id,
           case [i_i_dtime] when is null then '0' else  [i_i_dtime] end as i_i_dtime,
           case [i_qty] when is null then '0' else  [i_qty] end as i_qty,
           case [pre_q_id] when is null then '0' else  [pre_q_id] end as pre_q_id,
           case [pre_q_time] when is null then '0' else  [pre_q_time] end as pre_q_time,
           case [qqty] when is null then '0' else  [qqty] end as qqty
    where pre_q.pds_id *= pre_d.pds_id and pre_q.pds_id=i_i_d.pds_id
           case [pre_time] when is null then '0' else  [pre_time] end as pre_time,
      

  3.   

    ???
    怎么顺序会变啊??
    将where 放在最后啊!!