Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Access数据库-SQL,按同一列中的多个项进行筛选_Sql_Ms Access_Jet Sql - Fatal编程技术网

Access数据库-SQL,按同一列中的多个项进行筛选

Access数据库-SQL,按同一列中的多个项进行筛选,sql,ms-access,jet-sql,Sql,Ms Access,Jet Sql,我试图在Access中创建一个SQL查询,当KEY与三种非处方药Motrin、Tylenol和Bayer关联时,该查询将返回所有字段SELECT*。在下面的示例中,AMYZ32874的所有行都将被返回,而WillyV32906的所有行都不会被返回,因为他只与3种药物中的2种相关 起始数据: 关键字名称DOB OTC AmyZ32874 Amy Z 1/1/1990 Motrin AmyZ32874 Amy Z 1/1/1990泰诺 AmyZ32874艾米Z 1/1/1990拜耳 威利32906威

我试图在Access中创建一个SQL查询,当KEY与三种非处方药Motrin、Tylenol和Bayer关联时,该查询将返回所有字段SELECT*。在下面的示例中,AMYZ32874的所有行都将被返回,而WillyV32906的所有行都不会被返回,因为他只与3种药物中的2种相关

起始数据:

关键字名称DOB OTC AmyZ32874 Amy Z 1/1/1990 Motrin AmyZ32874 Amy Z 1/1/1990泰诺 AmyZ32874艾米Z 1/1/1990拜耳 威利32906威利V 2/2/1990莫特林 威利32906威利V 2/2/1990泰诺 威利32906威利V 2/2/1990泰诺 预期结果:

关键字名称DOB OTC AmyZ32874 Amy Z 1/1/1990 Motrin AmyZ32874 Amy Z 1/1/1990泰诺 AmyZ32874艾米Z 1/1/1990拜耳 我被卡住了。。。。这是我最近的一次尝试

挑选* 来自SAMPLEDB OTC在‘泰诺’、‘莫特林’、‘拜耳’中的位置,并输入 从SAMPLEDB中选择关键点 按计数键>2的键分组;
您应该在子查询中放置相同的WHERE语句:

(SELECT Key FROM SAMPLEDB
WHERE OTC IN ('Tylenol', 'Mothrin', 'Bayer')
GROUP BY Key 
HAVING COUNT(Key) > 2)
看起来有点难看,但我相信这应该行得通:

选择 * 从…起 样本数据库 哪里 “泰诺”、“莫特林”、“拜耳”中的OTC 并[输入]到 选择 [关键] 从…起 选择 [关键] ,OTC 从…起 样本数据库 哪里 “泰诺”、“莫特林”、“拜耳”中的OTC 分组 [关键] ,OTC AS S1 分组 [关键] 有 计数[键]>2 ;
你好,谢谢你,但这没有成功。我仍然得到同样的结果。旁注:尽可能避免在表中使用保留字,如Key。它们会使更复杂的SQL语句变得混乱,有时还会给您带来意想不到的结果。如果你不能避免这个名字,有时你也不能,试着把它括在括号里,以帮助减少混淆。谢谢C。怀特。谢谢你的指导。谢谢,但我收到一条错误信息。它表示查询表达式“OTC”中缺少运算符的语法错误,其中OTC在“Tylenol”、“Motrin”、“Bayer”中。。。我不知道该怎么想。我觉得很好,我知道了。WHERE子句需要放在GROUP BY之前。我想我可以改变它,你很可能需要重新审视它。我将把它标记为已解决。谢谢抢手货使用震荡编写SQL的危险:感谢您的更正!