access中如何查询a字段中的某1个值对应的所有b字段中包含特定的多个值的记录

作者&投稿:咸命 (若有异议请与网页底部的电邮联系)
access数据库"A"表中"a字段",与"B"表中"b字段"进行关联,想查找"a字段"中包含"b字段"的记录,如何查询??~

instr('abc','b')这个写法
select A.a from A WHERE EXISTS (SELECT 1 FROM B WHERE instr(A.a,B.b) > 0)

首先,在SQL中(以SQL Server为例),查询存在一个表而不在另一个表中的数据记录的方法有很多,介绍其中4种:
1、方法一(仅适用单个字段):使用 not in ,比较容易理解,缺点是效率低
如:select A.ID from A where A.ID not in (select ID from B);
2、方法二(适用多个字段匹配):使用 left join...on... , "B.ID isnull" 表示左连接之后在B.ID 字段为 null的记录。
如:select A.ID from A left join B on A.ID=B.ID where B.ID is null ;
3、方法三(适用多个字段匹配)
如:select * from B where (select count(1) as num from A where A.ID = B.ID) = 0;
4、方法四(适用多个字段匹配)
如:select * from A where not exists(select 1 from B where A.ID=B.ID)
接着,我们来分析你的SQL语句为什么返回数据不准确的原因。
从你的SQL基础语句来看,你使用了方法一和方法四这两种,两种语法本身都是正确的,但是却没有达到预期的效果,初步分析,问题可能出在gsdj和swdj这两张表的qymc字段的判断比较上。
举个例子:'企业名称'和'企业名称 '这两个字符串看似相同,实际却并不相同,因为第二个“企业名称 ”的后面跟了一个空格字符。就因为这个空格字符导致这个"'企业名称'='企业名称 '"等式不成立。
考虑到你qymc这个字段的类型是字符型,建议你在原有sql基础上做一个微调如下:
select * from gsdj gs where not exists (select * from swdj sw where rtrim(ltrim(sw.qymc )) )=rtrim(ltrim(gs.qymc )));
其中Ltrim()可以去除左侧空格,rtrim()可以去除右侧的空格,也就是说我们是对去除空格后的企业名称进行比较,排除了空格的干扰。

扩展资料:
在SQL中,对于字符型文本数据,经常需要用到去空格的操作,对ORACLE数据来说可以通过TRIM()函数来简单实现,而SQL SERVER中并没有TRIM()函数,只有LTRIM()和RTRIM()两个函数。
SQL 中使用ltrim()去除左边空格 ,rtrim()去除右边空格 ,没有同时去除左右空格的函数,要去除所有空格可以用replace(字符串,' ',''),将字符串里的空格替换为空。
例:去除空格函数
declare @temp char(50)
set @temp = ' hello sql '
print ltrim(@temp) --去除左边空格
print rtrim(@temp) --去除右边空格
print replace(@temp,' ','') --去除字符串里所有空格
print @temp
>> 输出结果 hello sql
hello sql
hellosql
hello sql

用日期和用户名分组汇总金额字段即可求出来


SQL语句如下:


select 日期,用户名,sum(资金) as 资金总额 from 你的表名 group by 日期,用户名 order by 日期,用户名


将上述SQL语句套上正确的表名,复制黏贴到SQL查询视图,点击工具栏运行命令(带叹号图标的)即可求出每天每个用户的资金总额。


*****关于楼主问题补充,更好解决,单用用户名分组汇总即可*****

select 用户名,sum(资金) as 资金总额 from 你的表名 group by 日期 order by 用户名


SQL查询视图

查询设计视图

运行结果



select * from 表X
where 姓名 in
(select 姓名
from (select distinct 姓名 from 表X where instr(购买物,'苹果')>0
union all select distinct 姓名 from 表X where instr(购买物,'香蕉')>0) as T
group by 姓名
having count(*)=2
)
与T对应的子查询是一个union all,union all与union的区别是union all不管是否重复都并起来,
如{1,2} union all {2,3}={1,2,2,3},而{1,2} union {2,3}={1,2,3}
为什么这里要用distinct呢?那是因为同一个人可能多次购买同一种水果,不能重复把姓名再记录一次。
select distinct 姓名 from 表X where instr(购买物,'苹果')>0 的意思就是购买苹果的人只查出来一次,
select distinct 姓名 from 表X where instr(购买物,'香蕉')>0) 的意思就是购买香蕉的人也只查出来一次,
把它们并在一起,然后按姓名分组并计算次数是否为2,是则表示它同时购买了这2种水果。
最后利用in来判断表X中姓名在查出来的姓名中,是就把他的所有购买记录全选出来


如何用access创建查询?
另外默认选中打开查询查看信息,最后点击完成退出界面。4、接着就会出现新建的查询界面,这里演示为student班级查询的查询界面。5、选择开始选项中的视图进行点击,在出现的菜单中选择设计视图。完成以上设置后,只要输入查询条件就可以筛选目标情况。这样就能在Access中创建一个选择查询。

如何用Access设计查询?
“排序”指定在查询结果中记录按哪个字段中的数据进行排序,它有两种类型:升序和降序。“准则”中的每一列准则指定了筛选记录的限制条件。“显示”决定了选定的字段是否显示在查询结果中。💾保存查询的定义保存查询的定义。🏃‍♀️查看查询结果如果要查看查询结果,单击Access...

Access数据库教程:姓名、数量简单查询练习
在数据处理的世界里,Access数据库凭借其强大的SQL查询、可视化和VBA编程能力,成为了弥补Excel局限的得力工具。今天,我们将深入探索如何在Access中进行姓名和销量的简单查询,以提升数据分析效率。实战案例:销售数据的精细化筛选基于一张包含20名员工,61天销售额的销售表,我们有1220条数据。这次实践将引导...

如何通过access快速查询没有成绩的表格?
1、首先,打开access数据库软件,再打开你的表格文件。2、首先,点击【创建】,再选择查询选项组里的【查询向导】。3、这时弹出新建查询对话框,选择【查找不匹配项查询向导】。点击【确定】。4、选择【学生信息表】,点击【下一步】。5、选择另一个表即【学生成绩表】,点击【下一步】。6、接着,...

在access数据库中,怎么使用语句进行查询
使用语句查询需要有sql基础,但有一定水准以后才能熟练应用,这里只说一下使用access中sql视图的方法:1、打开access的文件 2、点击上方菜单栏的创建-查询设计 3、弹出的小窗口点关闭 4、在上半部空白处点右键,选择sql视图 这样就可以使用sql语句进行查询了 ...

access里这种查询要怎么操作?
方法\/步骤 打开access数据库,这里我们看到有两个可查询的表,如下图。请点击输入图片描述 点击“查询”,选择“使用向导创建查询”,结果如下图。请点击输入图片描述 在表\\查询下拉菜单中,选择我们要查找的表,下面会显示表中的字段名字。如下图。请点击输入图片描述 因为我们这里的两个表进行了数据...

access中怎么用工具查询记录
1:利用剪贴板 在Access 中,打开要转换的表并查询。将鼠标指针拖过所选记录的行选择器(在窗口的最左端,当鼠标置于其上时,鼠标指针会变成向右方向的箭头),可以选择一组记录;将鼠标指针拖过所选字段的字段选择器(在窗口的最上端,当鼠标置于其上时,鼠标指针会变成向下方向的箭头),可以选择一组...

在access的简单查询中,使用汇总查询的关键是什么?
关键是使用“总计”栏,步骤如下:1、打开Access数据库并进入查询设计窗口。2、在查询设计窗口中,选择要进行汇总的字段(列)并将其添加到查询设计表格中。3、在查询设计表格的“总计”栏中,选择要进行汇总的字段,并选择适当的汇总函数(如求和、计数、平均值等)。

Access 2007中如何进行表的查询操作
Access 2007中建立了表之后,如何按照某一条件查询出相对应的数据?这里我就分享相关的。这里我用一个学生表来讲解。选择“创建”中的“其他”中的“查询设计”。此时弹出一个对话框,选中要查询的表,然后“添加”。此时注意到最下方的那个窗口。里面就是指定查询条件以及要返回的信息的。“字段”这...

Access数据库SQL选择查询(access数据库查询语句)
aess提供5种类型的查询,分类如下 1.选择查询 选择查询是最常见的查询类型,它从一个或多个表中检索数据,在一定的限制条件下,还可以通过选择查询来更改相关表中的记录。2.交叉表查询 交叉表查询可以在一种紧凑的、类似于电子表格的格式中,显示来源于表中某个字段的合计值、计算值、平均值等。交叉...

普安县18246965564: access中如何查询a字段中的某1个值对应的所有b字段中包含特定的多个值的记录 -
胥筠布瑞: select * from 表X where 姓名 in(select 姓名 from (select distinct 姓名 from 表X where instr(购买物,'苹果')>0 union all select distinct 姓名 from 表X where instr(购买物,'香蕉')>0) as T group by 姓名 having count(*)=2) 与T对应的子查询是一个...

普安县18246965564: 数据库中查询时,要查询姓"黄"的如何查询? -
胥筠布瑞: 必然有个字段是姓名.假设表为A,字段名为姓名.则在查询分析器中的命令如下:select * from A where 姓名 like '黄%' 按F5进行查询,结果就是所有姓黄的.

普安县18246965564: access2007怎样查询字段中包含某一元素的信息 -
胥筠布瑞: 在你要设置默认值的那个表右击选择设计视图,选择设置默认值的那个字段,在下方的字段属性中有一项为默认值,填上你想填的即可,希望我的答案对你有帮助,谢谢!

普安县18246965564: access2003用设计视图怎样查询一个字段中的重复项 -
胥筠布瑞: 假设你想查询A字段的重复项,你在SQL里写上下面的语句就行了:SELECT main.[A], Count(main.[A]) AS [重复字段] FROM main GROUP BY main.[A] HAVING (((Count(main.[A]))>1)); 如果你一定要在设计视图里实现,那你就调出设计视图里的“汇总”行,然后在设计视图里的第一栏放上A字段在“汇总”行选“合计”,再在第二栏里放上A字段,在“汇总”行选“计数”,在计数的条件里写上">1",就行了.注意,要统计重复项,不能选"Main.*".

普安县18246965564: ACCESS如何查询在同一字段中的相同数据 -
胥筠布瑞: 点击“新建查询”选择“查找重复项查询向导”选择表1,则建立一个查询,这里叫做 1' ,执行它,只包含重复项!!!再新建一个查询,在设计视图中建立查询,选择 1' ,点击"添加",然后关闭"显示表"对话框,双击A,B两个字段,在工具栏中找到"总计"工具,点击,在设计视图中A,B下面看见了"分组"字样,保存这个查询就行了.

普安县18246965564: access 中如何确定某表的某字段中是否存在某值 -
胥筠布瑞: select count(*) from 表1 where 字段1 ='a' 如果count(*)>0就是有 =0就是没有是一个查询符合某个条件的函数,求数量的函数

普安县18246965564: access数据库"A"表中"a字段",与"B"表中"b字段"进行关联,想查找"a字段"中包含"b字段"的记录,如何查询?? -
胥筠布瑞: instr('abc','b')这个写法 select A.a from A WHERE EXISTS (SELECT 1 FROM B WHERE instr(A.a,B.b) > 0)

普安县18246965564: Access 2003 中,如何在多个同类表中查询同一字段的内容? -
胥筠布瑞: ^_^ 有80分,好好回答一下. 哈哈~~ 数据库名:test.mdb 表名:table1 字段名:a1,a2,a3 查询直接用 sql="select * from table1" 即可.关键是如何处理从表单传递过来的数据.假如从表单传递的查询关键字为"KeyWords":<input type="text" ...

普安县18246965564: 我想要在一个ACCESS表中查询一条记录的某一个字段,请问怎么弄,然后在查询整张表,又要怎么弄呢,谢谢 -
胥筠布瑞: 字段A select A from tablename where 条件;查询整表 select a from tablalename;

普安县18246965564: Access中instr函数 -
胥筠布瑞: 本来instr如果找不到某个字符的时候返回的就是0啊,还有instr只能返回这个字符串里首次出现某个字符的位置比如字符串为ABA,那么这个只返回1,而不会返回3多嘴一句,我觉得你应该把语句写的标准点,括号,逗号什么的还是用英文写法的吧 我就随便建了个表最后用这句select instr(字段1,'A') from 表7 返回的就是

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