萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> access教程 >> access基礎教程 >> 如何在Access2007 表中同時顯示明細、小計、總計?

如何在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

copyright © 萬盛學電腦網 all rights reserved