create table t_bb_je
(
xm varchar(50),--项目名称
dr numeric(13,2),--当日金额
rq datetime --日期
)
insert into t_bb_je select '增加信誉值金额合计',200,'2008-3-1'
insert into t_bb_je select '增加信誉值金额合计',300,'2008-3-2'
create table t_rb_total
(
xm varchar(50),--项目名称
dr numeric(13,2),--当日金额
rq datetime  --日期
)
insert into t_rb_total select '(已上)合作厅及代理商应收',100,'2008-3-1'
insert into t_rb_total select '(已上)合作厅及代理商应收',200,'2008-3-2'
--要得出以下结果
/*
  往日合作厅余额合计   往日合作厅余额合计(累计)    当日合作厅余额合计   当日合作厅余额合计(累计)   日期
       0                      0                        100                 100              2008-3-1
      100                    100                       200                 300              2008-3-2注:往日合作厅余额合计=前一日的当日合作厅余额合计 
    当日合作厅余额合计=往日合作厅余额合计 + 增加信誉值金额合计 - (已上)合作厅及代理商应收
    如果是第一天,没有产生往日余额,则往日余额为0
    累计数为把前一天的余额与今天的金额进行累加
    要能够按照日期和项目名称进行查询
*/
drop table t_bb_je
drop table t_rb_total

解决方案 »

  1.   

    select 
    [往日合作厅余额合计]=t1.drSum-t2.drSum,
    [往日合作厅余额合计]=t2.drSum,
    [当日合作厅余额合计]=t1.drSum+t1.dr-t2.drSum-t2.dr,
    [当日合作厅余额合计]=t2.drSum+t2.dr
    from 
    (select *,isnull((select sum(dr) from t_bb_je where xm=a.xm and rq<a.rq),0)as drSum from t_bb_je a)t1
    join
    (select *,isnull((select sum(dr) from t_rb_total where xm=a.xm and rq<a.rq),0) as drSum from t_rb_total a)T2
    on t1.rq=t2.rq
    往日合作厅余额合计                                往日合作厅余额合计                                当日合作厅余额合计                                当日合作厅余额合计                                
    ---------------------------------------- ---------------------------------------- ---------------------------------------- ---------------------------------------- 
    .00                                      .00                                      100.00                                   100.00
    100.00                                   100.00                                   200.00                                   300.00(所影响的行数为 2 行)
      

  2.   

    select 
    [往日合作厅余额合计]=t1.drSum-t2.drSum,
    [往日合作厅余额合计累计]=t1.drSum-t2.drSum,--这里改改
    [当日合作厅余额合计]=t1.drSum+t1.dr-t2.drSum-t2.dr,
    [当日合作厅余额合计累计]=t2.drSum+t2.dr
    from 
    (select *,isnull((select sum(dr) from t_bb_je where xm=a.xm and rq<a.rq),0)as drSum from t_bb_je a)t1
    join
    (select *,isnull((select sum(dr) from t_rb_total where xm=a.xm and rq<a.rq),0) as drSum from t_rb_total a)T2
    on t1.rq=t2.rq
      

  3.   

    我要按日期查询的话,把查询条件加在哪里? ------------
    以上语句括起来select * from (以上语句SQL)TT where ....