在Access2007表中同时显示明细、小计、总计 |
问题 形容: 如何在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 |