大家好,我在数据库报表开发是SQL语句中出现了问题,希望大家帮我解决下。问题如下:
--收款单 t_cas_receivingbillentry 收款单表 外键:项目编码:cfprojectcodingid
select re.cfprojectname as 项目名称,sum(re.factuallocamt) as 实际收款金额,
to_char(re.fbizdate,'yyyy-mm-dd') as 实际收款日期
from t_cas_receivingbillentry re
where re.cfprojectname = 'zhangchang'
group by re.cfprojectname,to_char(re.fbizdate,'yyyy-mm-dd')
order by to_char(re.fbizdate,'yyyy-mm-dd');显示结果:
项目名称   实际收款金额      实际收款日期
zhangchang   22.0000         2011-04-22 
zhangchang   52650.0000      2011-04-26
zhangchang   32130.000       2011-04-27
zhangchang   52.0000         2011-04-28 
zhangchang   50000.0000   --回款计划单 
ct_ifm_plansheet回款计划单主表:主键fid,外键cfpjnoid项目编码,
ct_ifm_plansheetentry 回款计划单明细表,与主表关联字段:fparentid.select p.cfproname as 项目名称,sum(pe.cfamount) as 预计回款金额,
to_char(pe.cfadvance,'yyyy-mm-dd') as 预收日期
from ct_ifm_plansheet p
left join ct_ifm_plansheetentry pe on p.fid = pe.fparentid
where p.cfproname = 'zhangchang'
group by p.cfproname,to_char(pe.cfadvance,'yyyy-mm-dd') 
order by to_char(pe.cfadvance,'yyyy-mm-dd');
项目名称      预计回款金额      预收日期
zhangchang    6000              2011-06-23
zhangchang    8000              2011-08-23
zhangchang    50000             2011-10-19现在的需求是这样子的,将这两个查询合并起来显示的结果如下:
项目名称   实际收款金额      实际收款日期  预计回款金额      预收日期
zhangchang   22.0000         2011-04-22    0                 null
zhangchang   52650.0000      2011-04-26    0                 null
zhangchang   32130.000       2011-04-27    0                 null
zhangchang   52.0000         2011-04-28    0                 null
zhangchang   50000.0000      null          0                 null
zhangchang   0               null          6000              2011-06-23
zhangchang   0               null          8000              2011-08-23
zhangchang   0               null          50000             2011-10-19我想合并成这样子的效果。
我oracle技术不行,希望大家给我解决下,很急很急,非常感谢!               
   

解决方案 »

  1.   

    select re.cfprojectname as 项目名称,sum(re.factuallocamt) as 实际收款金额,
    to_char(re.fbizdate,'yyyy-mm-dd') as 实际收款日期,sum(pe.cfamount) as 预计回款金额,
    to_char(pe.cfadvance,'yyyy-mm-dd') as 预收日期
    from t_cas_receivingbillentry re,ct_ifm_plansheet p
    ,ct_ifm_plansheetentry pe on p.fid = pe.fparentid
    where p.cfproname = 'zhangchang'
    group by p.cfproname,to_char(pe.cfadvance,'yyyy-mm-dd')  
    order by to_char(pe.cfadvance,'yyyy-mm-dd');