可能是SQL语句

流水寿司殿 2005-06-03 03:34:32
有表COMPUTER有ComputerNo Department PM 三个字段,现在想要显示如下这样的报表

部门 计算机总数 笔记本总数,台式机总数
A 1 1 0、
B 6 5 1

我用的是DBGrid,最好能在最后一行显示合计,请问该如何做?是否要用其他控件?

...全文
121 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
wenjianyao 2005-06-08
  • 打赏
  • 举报
回复
三方控件 dbgrideh
naner_china 2005-06-08
  • 打赏
  • 举报
回复
上面是在Sql server
Access的话Case用IIf代替
查下帮助
流水寿司殿 2005-06-06
  • 打赏
  • 举报
回复
to naner_china
您写的是不是两句语句?我有些看不懂,使用后DELPHI提示“未指定错误”,数据库是ACCESS,虽然有意向改用SQL SERVER,但目前还是用ACCESS。是否可用?谢谢。
naner_china 2005-06-03
  • 打赏
  • 举报
回复
select Department 部门 ,
(sum(case pm when 'p' then 1 else 0 end)+sum(case pm when 'm'then 1 else 0 end)) as 计算机总数,
sum(case pm when 'p' then 1 else 0 end) as 台式机总数,
sum(case pm when 'm'then 1 else 0 end) as 笔记本总数
from COMPUTER group by Department
union all
select '合计',Sum(a.计算机总数),sum(a.台式机总数),sum(a.笔记本总数) from

(
select Department 部门 ,
(sum(case pm when 'p' then 1 else 0 end)+sum(case pm when 'm'then 1 else 0 end)) as 计算机总数,
sum(case pm when 'p' then 1 else 0 end) as 台式机总数,
sum(case pm when 'm'then 1 else 0 end) as 笔记本总数
from COMPUTER group by Department
) a
dashi111 2005-06-03
  • 打赏
  • 举报
回复
naner_china答案正确!
bbsftp 2005-06-03
  • 打赏
  • 举报
回复
有三种方法:用控件,用视图(如回复),用存储过程(如建临时表,将已有数据查入表,然后写语句汇总数据插入最后,例 :insert 临时表(计机总数、XX,XX)values(select sum(计机总数),sum(XX),sum(XX) from 原表 group by XXX)))

给分

流水寿司殿 2005-06-03
  • 打赏
  • 举报
回复
哦,对不起,是我没有说明清楚,COMPUTER表中各字段意义是这样的,
ComputerNo是计算机编号(这个字段可能用不到)
Department是部门名
PM 我们用来表示类型,值为'P‘的就是台式机,为'M'的是笔记本

要显示的情况如一楼,抱歉,没有解释清楚。
naner_china 2005-06-03
  • 打赏
  • 举报
回复
select Department 部门, (ComputerNo+PM) 计算机总数,ComputerNo 笔记本总数,PM 台式机总数
from COMPUTER union all
select '合计',Sum(ComputerNo+PM),sum(ComputerNo),sum(PM) from COMPUTER group by Department
aladdin2006 2005-06-03
  • 打赏
  • 举报
回复
用控件比较容易 ,代码也可以时间 但比较麻烦 ,什么控件忘记了,你搜一下好多

2,498

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧