access 中 用sql 找出一个表内相同的内容的个数

比如说 在一个表格内(如图) 用sql语言写出 有哪些顾客定了至少两个房间?

SQL正规查询语句是这么写的:
SELECT COUNT(*) from 要查询的表名 WHERE 列名=条件 GROUP BY 筛选的列名;
在VB,C或者其他语言中调用SQL语句格式都是这样,但在VBA中就不一样,因为他规定了查询的类型,你要先做一个选择查询才能给他汇总,在汇总中不可以出现条件筛选,不然会弹出标准表达式中数据类型不匹配。COUNT()函数无法生效。在ACCESS中你要先建立一个选择查询,筛选匹配的字段,再把查询视图去汇总。
选择查询语句这么写:
SELECT * FROM 要查询的表名 WHERE 要筛选的列名=匹配的条件;
把他直接保存成视图,名称为查询1
再把查询1去汇总:
SELECT COUNT(*) FROM 查询1 GROUP BY 列名;
这是查询设计器的规则,在VBA代码中你可以这么写:
SELECT COUNT(*)FROM [SELECT * FROM 子表 WHERE 条件] AS 查询1 GROUP BY 字段名;追问

如果求的改成“哪个顾客定的房间数是最多的?” 应该怎么写?

追答

那就用比较函数啊 MAX(列名) ,刚才那是计数,汇总就是SUM() 等等,你查下,

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-04-22
select 顾客编号 from 表 group by 顾客编号 having count(*)>1追问

如果求的是“哪个顾客定的房间数是最多的?” 应该怎么写?

追答

试试这个看行不
select max(count(*)),顾客编号 from 表 where 顾客编号 int( select 顾客编号 from 表 group by 顾客编号 having count(*) >1)

本回答被提问者采纳
第2个回答  2012-04-22
大概语法 select gkbh,count(fj) from dfjl group gkbh having count(fj)>1追问

如果求的改成“哪个顾客定的房间数是最多的?” 应该怎么写?

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网