WEB开发网
开发学院数据库Access 如何在Access2007 表中同时显示明细、小计、总计?... 阅读

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

 2008-10-03 00:00:00 来源:WEB开发网   
核心提示:问题描述: 如何在Access2007 表中同时显示明细、小计、总计?IDfullnamepay2 a ¥500.004 a ¥600.005 a ¥700.006 b ¥800.007 b¥55.00 有以上格式的表格,要根据 FULLNAME 做小计,如何在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

有以上格式的表格,要根据 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

Tags:如何 Access 同时

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接