日期:2014-05-17  浏览次数:20808 次

增加一条合计记录
有数据表Table,有字段   Debt(部门)、Duty(职务,值为高工、工程师、助工之一),表中有如下数据:
          Debt(部门)     Duty(职务)
          设计室1             高工
          设计室2             助工
          设计室2             高工
          设计室1             工程师  

用下列语句:
select   Debt,count(*),count(decode(Duty, '高工 ',1,null)),
count(decode(Duty, '工程师 ',1,null)),
count(decode(Duty, '助工 ',1,null))         from   table
group   by   debt
已经正确得到结果集:
            部门               合计       高工         工程师         助工
          设计室1             2             1                 1                 0  
          设计室2             2             1                 0                 1    

现在希望修改select语句,在结果集最前面增加一条合计记录,即结果集是:
              部门               合计       高工         工程师         助工
          合计                   4             2                 1                 1
          设计室1             2             1                 1                 0  
          设计室2             2             1                 0                 1    

  SQL语句是怎样的?  




------解决方案--------------------
求合计把group by debt改成group by rollup(debt)会在后面列出合计.
------解决方案--------------------
SELECT NVL(DEBT, '合计 ') AS DEBT, COUNT(DUTY) AS DUTY,
FROM TABLE
GROUP BY ROLLUP(DEBT)
ORDER BY DUTY DESC
/