你的SQL代码中的DISTINCT运算符使用方法不对。
DISTINCT只能对返回结果集的整行取唯一值,而不能对结果集其中的单个字段取唯一值,如果需要对单个字段取唯一值,解决的办法是对只含一个输出字段的SELECT语句使用DISTINCT *** 作符,但是请记住DISTINCT *** 作符不能当做函数使用,就像你提问中的那种写法“DISTINCT(czdl),”否则Jet引擎会报错。
本来想直接替你修改那段SQL代码,但是从你的SQL代码来看,不太容易弄清楚你的实际意图,改写的效果不一定适用,故暂不提供。
如果你能将所要的输出意图讲清楚,我可以为你编写一个正确的SQL代码
以下尝试修正你的SQL代码:
根据你的提问内容做如下猜测
有两张表,
czjl ( *** 作记录表)
字段:czdl( *** 作登录),czrq( *** 作日期),czje( *** 作金额)
vip(vip表)
字段:vid(vip编号),VName(vip名字)
vip表的vid字段与czjl表的czdl字段构成一对多关系
要求输出ID,姓名, *** 作日期,同一个VIP的当天 *** 作金额小计,同一人同一天有多条记录时只显示一次并按 *** 作日期降序排序
sql="select czjlczdl,vipVName,czjlczrq,sum(czjlczje) as czje from vip,czjl where vipvid=czjlczdl group by czdl,VName,czrq order by czrq DESC"
如果不要求输出czje *** 作金额的话,可以使用DISTINCT关键字将SQL代码简化为
sql="SELECT DISTINCT czdl, VName, czrq FROM vip, czjl WHERE vipvid=czjlczdl
ORDER BY czrq DESC"
如果以上猜测不符合你的想法,请发追问。
excel 中 怎么实现sql中的distinct 功能,在sheet中是数据源,把distinct的结果数据显示在sheet2中
在数据库的设计中,如何实现Distinct *** 作呢?一般有两种基本思路:排序(Sort)法,哈希(Hash)法。
排序法将表格中的数据全部按照distinct指定的列为key进行排序,然后逐行迭代,每迭代出一行数据都与上一行数据根据key作对比,如果相同,则丢弃当前行继续迭代下一行,如果不同则输出。排序法带来的一个副作用就是数据输出按照key有序。mysql在某些情况下不是使用排序法,通过下面的输出可以观察到行并不是有序的:
Select Distinct的意思是查找重复的意思,在SQL语句中的作用是过滤结果集中的重复值。
在表中,可能会包含重复值,关键词 DISTINCT 用于返回唯一不同的值,语法为
SELECT DISTINCT 列名称 FROM 表名称。
如果要从 "Company" 列中选取所有的值,我们需要使用 SELECT 语句,语句如下:
SELECT Company FROM Orders
SQL 是一门 ANSI 的标准计算机语言,用来访问和 *** 作数据库系统。SQL 语句用于取回和更新数据库中的数据。SQL 可与数据库程序协同工作,比如 MS Access、DB2、Informix、MS SQL Server、Oracle、Sybase 以及其他数据库系统。
用group by 啊
比如
select 姓名 from 表名 group by 姓名
等同于
select distinct 姓名 from 表名
以上就是关于ACCESS 数据库,关于 DISTINCT 的一些问题全部的内容,包括:ACCESS 数据库,关于 DISTINCT 的一些问题、excel中怎么实现sql中的distinct功能、请问sql语句“Select Distinct”是什么意思可不可以讲一下它的用法等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)