论坛交流
首页办公自动化| 网页制作| 平面设计| 动画制作| 数据库开发| 程序设计| 全部视频教程
应用视频: Windows | Word2007 | Excel2007 | PowerPoint2007 | Dreamweaver 8 | Fireworks 8 | Flash 8 | Photoshop cs | CorelDraw 12
编程视频: C语言视频教程 | HTML | Div+Css布局 | Javascript | Access数据库 | Asp | Sql Server数据库Asp.net  | Flash AS
当前位置 > 文字教程 > Access数据库教程
Tag:2000,2003,2007,查询,sql,,教程,安全,转换,排序,复制,删除,修改,视频教程

在Access2007表中如何同时显示明细、小计、总?

文章类别:Access数据库 | 发表日期:2012-2-23 10:00:17

 问题描述: 如何在Access2007 表中同时显示明细、小计、总计?

  ID      fullname  pay
  2       a         ¥500.00
  4       a         ¥600.00
  5       a         ¥700.00
  6       b         ¥800.00
  7       b          ¥55.00

  在Access2007 有以上格式的表格,要根据 FULLNAME 做小计,然后全部的做总计,变成以下格式,该如何完成?

  fullname  pay
  a           ¥700.00
  a           ¥600.00
  a           ¥500.00
  a 小计    ¥1,800.00
  b            ¥55.00
  b           ¥800.00
  b 小计      ¥855.00
  总计      ¥2,655.00

  问题解答:首先,应该了解,表是用来存储数据的,而不是用来显示统计结果以及显示给最终用户看的。类似工作应该在 Access2007 报表中完成,报表中可以分组且显示小计。具体内容你可以参考帮助或者 NORTHWIND.MDB 示例数据库中的报表。

  其次,在 ADO 中专门有一部分,称为数据整形用来完成上述工作,但是它需要配合 VB 的 DATAGRID 等控件来完成显示。 部分 VB 控件也可以使用在 Access2007 的窗体中。

  最后,如果你实在想在 Access2007 的表格中完成,你可以使用组织 JET SQL 生成查询的方式来完成。

  select fullname,pay from pay 


  用来查询出明细

  SELECT pay.fullname & " 小计" AS 表达式1, Sum(pay.pay) AS payAll
  FROM pay
  GROUP BY pay.fullname & " 小计" 


  用来分类汇总小计,注意上述技巧,在 FULLANME 字段旁加“ 小计”不只是为了好看,要将小计这行放在明细的下面完全要靠  ORDER BY FULLNAME 来实现,你可以通过调整这一行来编排它的显示顺序

  select "总计", sum(pay) from pay


  用来显示总计数,请注意,“总”字的 ANSI 编码必须大于 FULLNAME 字段中任何一个字符,否则就无法根据 FULLNAME 排序将总计数放在表格的最下面一行。提示:不能用“总”的时候你可以用其他字符,甚至是符号也可以,只要它的机器码够大就行。

  将上述语句用 UNION ALL 来组织就可以达到预想的效果。

  select fullname,pay from pay
  union all

  SELECT pay.fullname & " 小计" AS 表达式1, Sum(pay.pay) AS payAll
  FROM pay
  GROUP BY pay.fullname & " 小计"

  union all

  select "总计", sum(pay) from pay

  order by fullname

视频教程列表
文章教程搜索
 
Access数据库推荐教程
Access数据库热门教程
看全部视频教程
购买方式/价格
购买视频教程: 咨询客服
tel:15972130058