有一个财务报表。
表1:
  rq,        jfje   dfje  
2003-01-01    10
2003-01-01           20
2003-01-01    30然后通过视图得出如下如果:(ye=jfje-dfje),注ye不是数据库字段.
  rq,       jfje   dfje     ye
2003-01-01   50             50
2003-01-01          20      30
2003-01-01   30             60用SQL语句如何写?

解决方案 »

  1.   

    你在sqlserver下面建个相类似的视图。然后把视图的sql语句考下来就OK了。
      

  2.   

    你是不是可以考虑吧dfje 的默认字段设置为0
    ye就是计算字段的 来计算出来的
    在query的oscroll事件中把jfje位0的值设置为上个数据行的ye字段的值呢
    菜鸟的 没有什么好的办法的 参考吧
      

  3.   

    计算字段是不可能的,是上一条记录的ye 减去本记录jfje+dfje是不能用计算字段求出的。hiflower(花) :无法得到计录先后,这个问题可以先不考虑,能计算出结果吗?
      

  4.   

    第一条记录的ye+第二条记录的jfje-第二条记录的DfjeN01  rq,       jfje   dfje     ye
    1   2003-01-01   50    0       50    (这是第一条记录,50+0=50) 
    2   2003-01-01   0     20      30    第二第记录就等于上一条50+0-20=30
    3   2003-01-01   30    0       60    第二第记录就等于上一条30+30-0=60
    ....以此类推下去          
      

  5.   

    select rq,jfje,dfje,(jfje-dfje) as re from 表名
    就行了
      

  6.   

    jslygwx(海豚) 
    能不能说得清楚点?
      

  7.   

    我感觉用视图不行,因为要得到一条记录的YE的前提是,必须得到上一条记录的YE,也就是说必须是一条记录计算完后,记录他的YE,才能计算出下一条,SELECT语句实现不了。为什么不加上这个字段。
      

  8.   

    zhengyi1978() :刚开始我没表述清楚,我的问题。
    第一条记录的ye+第二条记录的jfje-第二条记录的DfjeN01  rq,       jfje   dfje     ye
    1   2003-01-01   50    0       50    (这是第一条记录,50+0=50) 
    2   2003-01-01   0     20      30    第二第记录就等于上一条50+0-20=30
    3   2003-01-01   30    0       60    第二第记录就等于上一条30+30-0=60
    ....以此类推下去
      

  9.   

    yuner5() :能不能说得详细一点?
      

  10.   

    如果有了 No1 来识别,则就可行了,但你还要保证 No1 的顺序与 rq 对应。
    你的问题其实要换个方法表述,比如 jfje 为入库,dfje 为出库,ye 是每天的结余,是不是这样呢?SELECT rq, jfje, dfje,
            (SELECT SUM(jfje)
          FROM test4
          WHERE (NO1 <= A.NO1) AND (rq <= a.rq)) -
            (SELECT SUM(dfje)
          FROM test4
          WHERE (NO1 <= A.NO1) AND (rq <= a.rq)) AS ye
    FROM test4 a
      

  11.   

    hiflower(花) :像你这样表述是清楚多了,
    你太历害了,可解决了我的大难题了。我详细再试试看。
    你有QQ吗?我想与你多多交流。
      

  12.   

    再请教个问题,这个我就能彻底解决问题了。
    如何查询出如下结果:
    Select 这里需要有个自增字段, Sum(je1),Sum(je2) from Table查询出来的结果,比如:
    id  je1  j2  
    1    XX   XX  
    2    XX   XX  
    3    XX   XX   
    4    XX   XX   
    5    XX   XX   
    ....
      

  13.   

    你这样 select 只有一条记录啊,怎么自增呢,那个字段随便写一个值就行了Select 1 as id, Sum(je1),Sum(je2) from TableSelect newid() as id, Sum(je1),Sum(je2) from Table