會(huì)員登錄 - 用戶注冊(cè) - 網(wǎng)站地圖 Office中國(guó)(office-cn.net),專業(yè)Office論壇
當(dāng)前位置:主頁 > 技巧 > Access技巧 > 查詢視圖 > 正文

Partition,讓你的分組統(tǒng)計(jì)更加得心應(yīng)手

時(shí)間:2005-07-15 10:15 來源:本站原創(chuàng) 作者:海貍先生… 閱讀:

看到很多朋友在access進(jìn)行分組統(tǒng)計(jì)查詢時(shí),常常用嵌套多層IIF函數(shù)來得到分組區(qū)間標(biāo)志,如設(shè)表A有Age這樣一個(gè)字段,一般朋友會(huì)采用如下的查詢語句:

Select

IIf(Age<30,"0:29",IIf(Age<40,"30:39",IIf(Age<50,"40:49",IIf(Age<60,"50:59",IIf(Age<70,"60:69","70:  "))))) As Range,

Count (1) As Count

From A

Group By

IIf(Age<30,"0:29",IIf(Age<40,"30:39",IIf(Age<50,"40:49",IIf(Age<60,"50:59",IIf(Age<70,"60:69","70:  ")))))

不但語句冗長(zhǎng),而且由于多層IIF函數(shù)嵌套,極易出錯(cuò)。另外如果分組區(qū)間進(jìn)一步細(xì)化,更加多層嵌套的IIF函數(shù)會(huì)讓人有“亂花漸欲迷人眼”的感覺,出錯(cuò)的概率進(jìn)一步增大。

 

下面我為大家介紹VBA自帶的一個(gè)函數(shù)Partition,它能使你的語句變得精簡(jiǎn),大大減少出錯(cuò)概率。

首先說明一下其的語法:

Partition(number, start, stop, interval)

number 必需。整數(shù),在所有范圍中判斷這個(gè)整數(shù)是否出現(xiàn)。

start必需。整數(shù),數(shù)值范圍的開始值,該值不能小于0。

stop必需。整數(shù),數(shù)值范圍的結(jié)束值,該值不能等于或小于start。

interval必需。整數(shù),指示在StartStop之間計(jì)算的每個(gè)范圍的大小。該值不能小于1

 

我們把上面的查詢語句修改一下,采用Partition函數(shù):

Select Partition(Age,0,69,10) As Range, Count(Age) As Count FromA Group By Partition(Age,0,69,10)

效果是很顯示的,與上面冗長(zhǎng)的語句相比,簡(jiǎn)單是天差地別。

 

現(xiàn)在我結(jié)合這個(gè)實(shí)例再對(duì)Partition函數(shù)做進(jìn)一步說明:

Partition(Age,0,69,10)

number 參數(shù)為Age字段,也就是對(duì)該字段的所有內(nèi)容進(jìn)行判斷。

start 參數(shù)為0,即統(tǒng)計(jì)范圍從0開始

stop 參數(shù)為69,即統(tǒng)計(jì)范圍以69結(jié)束,這里需要解釋一下。

雖然統(tǒng)計(jì)范圍截止到69,但是如果表AAge字段存在比69大的數(shù)值,即70及以上的,結(jié)果中將會(huì)為70及以上的數(shù)值劃分出一個(gè)區(qū)間。(同理,如果start參數(shù)的值大于0,假設(shè)是10,那么當(dāng)Age字段中存在比10小的數(shù)值,結(jié)果中也為會(huì)10以下(不含10)的數(shù)值劃分出一個(gè)區(qū)間)

interval 參數(shù)為10,即每個(gè)區(qū)間范圍是10,即0:9,10:19,20:29………(說明:如果某區(qū)間范圍內(nèi)沒有符合數(shù)值,結(jié)果中將省略這個(gè)區(qū)間)

(責(zé)任編輯:admin)

頂一下
(0)
0%
踩一下
(0)
0%
發(fā)表評(píng)論
請(qǐng)自覺遵守互聯(lián)網(wǎng)相關(guān)的政策法規(guī),嚴(yán)禁發(fā)布色情、暴力、反動(dòng)的言論。
評(píng)價(jià):