2017-03-06 65 views
0

我的目标是创建一个查询,宏或任何可以执行下述任务的解决方案。访问2016 - 比较两个表并使用查询返回匹配的记录

  1. 可以说我有一个名为 “学生” 与12条这样的访问2016表:

enter image description here

  • 然后,可以说我有一个名为 “matchme” 有4条这样的第二个表:
  • enter image description here

    我需要找到一种方法来

    =>首先,创建一个查询,返回“graduation_date”的结果等于表“学生”日期“1/31/2017”。

    =>第二步,从第一步返回的结果创建一个查询,将“student”表中的“email”与“matchme”表中的“email”进行比较,并返回[匹配的]记录结果。

    所以期望的结果将是:

    enter image description here 因为电子邮件[email protected][email protected]两个表中存在。

    如何创建这样的查询?

    你可以从这里下载我访问文件:experiment.accdb

    回答

    1

    寻找到你的数据样本,你需要在两个表

    select * from student 
    inner join matchme on student.graduation_date = matchme.graduation_date 
             and student.email = matchme.email 
    
    where student.graduation_date = '1/31/2017' 
    
    +0

    我道歉。当我上传问题时,我犯了一个错误。我纠正了我的问题。这是“电子邮件”字段,必须匹配..你可以修改你的答案新问题? – ChrisP777

    +0

    @ ChrisP777回答更新 – scaisEdge

    +0

    谢谢你的回答!我粘贴了sql,它说“指定的文件'graduation_date'可能引用SQL语句的FROM子句中列出的多个表。”任何想法,如果我做错了什么?即使我将where子句更改为student.graduation_date ='1/31/2017',它也会返回“标准表达式中的数据类型不匹配”。 – ChrisP777

    1

    简单之间的日期和名称的加入:

    select * from student 
    inner join matchme on student.email = matchme.email      
    where student.graduation_date = '1/31/2017' 
    
    +0

    让我知道如果我做错了什么。 1)点击“创建”2)点击“查询设计”按钮。 3)查看“显示表格”对话框4)单击关闭此对话框而不选择任何表格。 5)从视图6中选择“SQL视图”)粘贴你在这里编写的代码。 7)单击运行=>结果显示为“标准表达式中的数据类型不匹配”。任何想法我做错了什么? – ChrisP777

    +0

    2个电子邮件字段上的数据类型听起来很不一样。如果您使用Access使用文本数据类型。检查学生和比赛表上的电子邮件字段,在设计视图中将两者都设置为文本数据类型 – jfatal

    +0

    嗨,感谢您的回复。这两个表的ID都是自动编号。 student_number,first_name,last_name,email是两个表的短文本。 graduation_date是两个表的日期/时间..嗯,你可以真正下载我的文件,因为我在原始文章中添加链接,如果你好奇..谢谢你... – ChrisP777

    相关问题