这种报表在报表控件中就可以实现,不用复杂的SQL语句,做报表的时候按机构编号分组就可以解决了

解决方案 »

  1.   

    这不是sql该干的事,找个报表工具这些功能都有了
      

  2.   

    break on 机构编号 skip 1
    select   机构编号,公司编号,币种,金额
    from tbname
    order by 机构编号 desc;
      

  3.   

    TO KingSunSha(弱水三千) 兄,
    我想过用报表工具,可现在要做的报表种类实在太多,要是我每个模板都去设计的话,几百种报表格式,我想这么短时间,我真要被累死。现在我是统一的把数据集取到dbgrid控件后,打印的格式就和数据集的格式一样打印出来。
    难得就没有办法了吗,我现在采取的办法是通过现已机构编号为基准然后再已公司编号为准去拼接SQL语句,虽然可以达到我的目的,但是公司多的话,这个sql的长度就不可想想了。帮我想个好点的法子吧,好惨的。
      

  4.   

    (
    select 机构编号,公司编号,币种,金额  from 表
    union all
    select 机构编号,'','',sum(金额 ) from 表
    group by bcode
    union all
    select '所有机构','','',sum(HACCHU_TANI) from 表
    )
    order by 机构编号
      

  5.   

    to  bzszp(SongZip) 兄,
    这个break on 机构编号 skip 1东西怎么玩,sql语句当中好像不能有吧。
    我是要把通过一个sql按着报表的格式取出来然后,到客户端的dbgrid中后,我就可以直接把报表打印出来。
      

  6.   

    SQL> break on bbb skip 1
    SQL> compute sum of aaa on bbb
    SQL> select bbb,aaa
      2  from a3
      3  order by bbb desc;BBB              AAA
    ---------- ---------
    eee             33.1
    ********** ---------
    sum             33.1ddd             11.1
                    22.1
    ********** ---------
    sum             33.2ccc             11.1
                    22.1
                    33.1
    ********** ---------
    sum             66.3bbb             11.1
                    22.1
                    33.1
    ********** ---------
    sum             66.3
    BBB              AAA
    ---------- ---------
    aaa             11.1
                    22.1
                    33.1
    ********** ---------
    sum             66.3
    已选择12行。
      

  7.   

    楼上的写法
    是sqlplus提供的功能
    除非你的报表通过它来生成  :)
      

  8.   

    to zhiwen_huang(黄志文) 兄,是我表达能力不清楚,还没有完全讲清楚问题。
    那个机构编号在整个集合里面只出现一次,公司在每个机构编号组里面也只出现一次。如:
       机构         公司    币种  金额
       Z000001
                    GBOOOO1 usd 1000
                            hkd 2000
                    GB00002 cny 10000
                    GB00003 USD 13131
    。。
        B000001
                    GB00001 USD 1313
                    GB00011 CNY 1313

                    GB00011 JNY 1313
      

  9.   

    (
    select 机构编号,公司编号,币种,金额  from 表
    union all
    select 机构编号,'','',sum(金额 ) from 表
    group by bcode
    union all
    select '所有机构','','',sum(HACCHU_TANI) from 表
    )
    order by 机构编号OK??????????????????????/
      

  10.   

    用纯sql不能一步到位的形成你的报表。
    需要借助第三方工具。
      

  11.   

    to  biti_rainy(biti_rainy) 不是用Sql Plus 中,那我真的死惨了。
      

  12.   

    用纯sql不能一步到位的形成你的报表。
    需要借助第三方工具。
      

  13.   

    select decode(nvl(公司编号,' '),' ',机构编号,' '),公司编号,币种,金额  from 
    (
    select distinct 机构编号,NULL as 公司编号,NULL as 币种,NULL as 金额   from 表
    union all
    select 机构编号,公司编号,币种,金额  from 表
    union all
    select 机构编号,NULL as 公司编号,NULL as 币种,sum(金额 ) as 金额    from 表
    group by 机构编号
    union all
    select NULL as 机构编号,NULL as 公司编号,NULL as 币种,sum(HACCHU_TANI) as 金额   from 表
    ) a
    order by nvl(机构编号,'XXXXXXX'),nvl(公司编号,'XXXXXXX')
      

  14.   

    Result is:
       机构         公司    币种  金额
       Z000001
                    GBOOOO1 usd 1000
                    GBOOOO1 hkd 2000
                    GB00002 cny 10000
                    GB00003 USD 13131
    。。
        B000001
                    GB00001 USD 1313
                    GB00011 CNY 1313

                    GB00011 JNY 1313
      

  15.   

    result is:Z000001
                    GBOOOO1 usd 1000
                    GBOOOO1 hkd 2000
                    GB00002 cny 10000
                    GB00003 USD 13131
    。。
        B000001
                    GB00001 USD 1313
                    GB00011 CNY 1313

                    GB00011 JNY 1313