数据库
首页 > 数据库> > Excel 2010 SQL应用101 域聚合函数之DCOUNT

Excel 2010 SQL应用101 域聚合函数之DCOUNT

作者:互联网

目录

源数据表

解决方案

应用程序 DCount 方法

语法

参数

返回值


源数据表

ID 姓名课程得分
1小王语文65
2小王数学78
3小王英语89
4小王化学82
5小黄语文65
6小黄数学85
7小黄英语100
8小黄物理91
9小黄化学55
10小黄生物92
11小刘语文59
12小刘数学94
13小刘英语94
14小刘物理100
15小刘化学62
16小薛语文73
17小付语文80
18小付数学100
19小付英语100
20小付化学65

 

    如图所示为某班的期末考试成绩表,班主任需要查询每位学生得分最高两科的记录,以便根据学生成绩写好相关的评语,具体条件如下。
    条件1:每位学生可以只有1条记录,如“小薛”,此时只返回搜索记录即可。
    条件2:允许出现并列第2高分的情况,如小刘的“数学”、“语文”。
    条件3:当出现并列第1高分的情况时,只取并列第1的两条记录。如小付的“数学”、“英语”。

解决方案

以“现有连接”方式添加数据源

SELECT *
FROM [sheet1$]
WHERE DCOUNT("得分","sheet1$","姓名='" & 姓名 &"' AND 得分>" & 得分)<2

应用程序 DCount 方法

 DCount 函数来确定特定记录集(一个域)内的记录数。

语法

表达式DCount(Expr、 Domain、 Criteria)

expression:表示 Application 对象的变量。

参数

参数
名称必需/可选数据类型说明
Expr必需String用于标识要记录计数的字段的表达式。 它可以是标识表或查询中的字段的字符串表达式,也可以是对该字段中的数据进行计算的表达式。 在_Expr_中, 可以包含表中的字段、窗体上的控件、常量或函数的名称。 如果_expr_包括函数, 则它可以是内置的, 也可以是用户定义的, 但不能是另一个域聚合函数或 SQL 聚合函数。
Domain必需String字符串表达式, 用于标识构成域的一组记录。 可以是表名称或不需要参数的查询的查询名称。
Criteria可选Variant可选的字符串表达式,用于限制作为 DCount 函数执行对象的数据的范围。 例如,criteria 通常等同于 SQL 表达式中的 WHERE 子句,没有单词 WHERE。 如果省略了 criteria,那么 DCount 函数将对整个域进行 expr 评估。 _条件_中包含的任何字段都必须也是_域_中的字段;否则, DCount函数将返回Null

返回值

Variant

    如果不需要知道记录的特定值,则可以使用DCOUNT函数对域中的记录进行计数。虽然expr参数可以对字段执行计算,但DCOUNT函数仅仅统计记录的数目。expr所执行的任何
计算的值均不可用。如果需要指定条件以限制函数执行的数据范围,则可以在SQL中使用DCOUNT函数。
    在本例中,关键是构造WHERE子句的条件,通过使用DCOUNT函数产生新的条件进行判断,选出符合条件的记录。本例的关键之处是“DCOUNT(“得分”,”sheet1$”,”姓名="'&姓名
&"'AND得分>”&得分)<2”部分,其原理是:

第一步,首先取出第一条记录,

然后以该记录执行DCOUNT函数:DCOUNT(“得分”,”sheet1$”,”姓名="'& 小王&"'AND得分>”& 65),进行类似Excel中公式按F9的逐步分析得到如下结果:

 DCOUNT(“得分”,”sheet1$”,”姓名="'& 小王&"'AND得分>”& 65)=3<2

第二步,由第一步中结果得到相应的执行结果语句:

SELECT * FROM [sheet1$] WHERE FALSE,所以该条记录不符合要求,然后取出第二条记录,进行第一条记录的类似分析

其他记录依次类推,找出符合条件的记录。

    任何可以在WHERE子句中使用的条件都可以放在DCOUNT函数的criteria参数中,例如,在本例中,需要统计“成绩表”中“小王”和“小刘”的记录数,其SQL语句为:

SELECT COUNCT("姓名","sheet$","姓名 IN ('小王','小刘')")

    对应其使用WHERE子句的SQL语句为:   

SELECT COUNT(*)
FROM [sheet1$]
WHERE 姓名 IN ('小王','小刘')

 

标签:得分,小王,函数,记录,DCOUNT,Excel,SQL,WHERE
来源: https://blog.csdn.net/ngbshzhn/article/details/113241377