你用什麽作報表阿,REPORT的化可以用匯總列實現嗎?

解决方案 »

  1.   

    在报表中定义一个变量.记录当前值.然后根据接下来的值是否可以被4整除,来决定求和,如果不够四行则直接求和,在报表中实现.  好久没有用水晶报表了,不知道在win98上的问题是不是解决了. 还是习惯用active report.好用.
      

  2.   

    09:06:12 SQL> select * from tt;         A
    ----------
            10
            12
            13
            14
            15
            20
           200
             2
            50已选择9行。已用时间:  00: 00: 00.31
    09:06:22 SQL> select trunc((id-1)/5)+1,to_char(id),a from (
    09:06:29   2  select rownum id,a from tt)
    09:06:29   3  union 
    09:06:29   4  select trunc((id-1)/5)+1,'sum',sum(a) from (
    09:06:29   5  select rownum id,a from tt
    09:06:29   6  ) group by trunc((id-1)/5);TRUNC((ID-1)/5)+1 TO_CHAR(ID)                                       A
    ----------------- ---------------------------------------- ----------
                    1 1                                                10
                    1 2                                                12
                    1 3                                                13
                    1 4                                                14
                    1 5                                                15
                    1 sum                                              64
                    2 6                                                20
                    2 7                                               200
                    2 8                                                 2
                    2 9                                                50
                    2 sum                                             272已选择11行。已用时间:  00: 00: 00.31
    09:06:30 SQL>
      

  3.   

    樓上的方法確實可以把數據分組,匯總;
    但是在報表格式上感覺難以實現;每4筆匯總,可以在每page放置sum;
    若是最後一頁不夠4筆,sum的位置就自動移上去了...................
      

  4.   

    你的需求在前端报表中来处理.数据库只管返回一个数据集. 你把取到的数据集放到一个DataSet中.然后定义变量来判断DataSet的数据. 可以到.net版块中找水晶报表高手帮忙.
      

  5.   

    这样也可以,简化了一下
    16:23 SQL> select * from tt;      A
    -------
         10
         12
         13
         14
         15
         20
        200
          2
         50≡?行。檬奔?  00: 00: 00.31
    16:43 SQL> select sum(a) from (
    16:45   2  select trunc((rownum-1)/4) id,a from tt) t
    16:45   3  group by rollup(id,a); SUM(A)
    -------
         10
         12
         13
         14
         49
          2
         15
         20
        200
        237
         50 SUM(A)
    -------
         50
        336≡?3行。檬奔?  00: 00: 00.78
    16:46 SQL>