如下SQL语句:
select * from dpzl order by cpxh compute sum(mj) by cpxh
我用COMPUTE BY子句产生分量数据行和多个汇总值时,若用DBGRID控件显示以上查询结果集,则只能显示第一条记录且汇总值不能显示在DBGRID控件中。如何在DBGRID控件中将上述SQL语句的所有查询结果和汇总值显示出来呢?如何在报表中打印所有查询结果和汇总值呢?

解决方案 »

  1.   

    compute by 不好用,  用其它方式吧
      

  2.   

    我也遇到同样的问题,而且我用的是ClientDataSet数据集,举个例子,在查询分析器中如下显示:
    SELECT type, price, advance
    FROM titles
    ORDER BY type
    COMPUTE SUM(price) BY type
    type         price                 advance               
    ------------ --------------------- --------------------- 
    business     19.9900               5000.0000
    business     11.9500               5000.0000
    business     2.9900                10125.0000
    business     19.9900               5000.0000             sum
                 =====================
                 54.9200
    type         price                 advance               
    ------------ --------------------- --------------------- 
    mod_cook     19.9900               .0000
    mod_cook     2.9900                15000.0000             sum
                 =====================
                 22.9800可是在DBGRID中只能显示如下信息,更本无法显示合计数据:
    business     19.9900               5000.0000
    business     11.9500               5000.0000
    business     2.9900                10125.0000
    business     19.9900               5000.0000哪位高手,快来帮忙解决这个问题吧,救苦救难啊!!!!
      

  3.   

    ....group by type 就是按type分组统计
      

  4.   

    SELECT type, sum(price)
    FROM titles
    group by type试试看
      

  5.   

    wolf2005() ,: huangsizen() 你们没有理解问题,地球人都知道group by 怎么用!!!
    sum合计值是以行的方式显示,不是以列的方式
      

  6.   

    你们都问的好,现在我来给你们解决。
    主要是你们的关键字用错了,应该用:with rollup 或 with cube
    如:
    SELECT aaa,bbb
           FROM tablea
    GROUP BY aaa, bbb WITH ROLLUP
      

  7.   

    我认为
    GROUP BY TYPE
    很好用
      

  8.   

    我给你写一下,不过你要给我分,记住,哈哈哈select (case whern grouping(cpxh)=1 then '合计' else cpxh end) as cpxh,sum(mj)
    from dpzl group by cpxh with rollup
      

  9.   

    gencan(无敌) 的办法很好,还是我们的SQL语句不太娴熟啊。楼主快给他分