Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/82.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
Sql 返回两个字段不同的查询结果(Access 2010)_Sql_Database_Ms Access_Criteria - Fatal编程技术网

Sql 返回两个字段不同的查询结果(Access 2010)

Sql 返回两个字段不同的查询结果(Access 2010),sql,database,ms-access,criteria,Sql,Database,Ms Access,Criteria,我在一个大型access数据库(access 2010)中工作,试图返回两个位置不同的记录 在我的例子中,我有大量的鸟类在多个日期被观察到,可能在不同的岛屿上。每只鸟都有一个唯一的鸟,还有一个实际的物理标识符(不幸的是,随着时间的推移,这个标识符可能会发生变化)。[稍后我将尝试解决不断变化的物理标识符问题]。目前,我想询问个别鸟类,它们的一个或多个观察结果与“IslandAlpha”(第一个观察到它们的岛屿)不同。类似于鸟人标准的东西:IslandID[不等于]IslandAlpha 然后,我需

我在一个大型access数据库(access 2010)中工作,试图返回两个位置不同的记录

在我的例子中,我有大量的鸟类在多个日期被观察到,可能在不同的岛屿上。每只鸟都有一个唯一的鸟,还有一个实际的物理标识符(不幸的是,随着时间的推移,这个标识符可能会发生变化)。[稍后我将尝试解决不断变化的物理标识符问题]。目前,我想询问个别鸟类,它们的一个或多个观察结果与“IslandAlpha”(第一个观察到它们的岛屿)不同。类似于鸟人标准的东西:IslandID[不等于]IslandAlpha

然后,我需要一个单独的查询,以找到所有观察值在哪里与它们第一次被观察到的位置相等。那么IslandID=IslandAlpha在哪里


我是新手,所以如果您需要有关如何设置我的表/关系的更多信息,请告诉我!提前感谢。

假设下表:

  • Birds
    表格,其中所有鸟类都有一个唯一的
    BirdID
    IslandAlpha
    记录
  • 目击记录
    记录个人目击记录的表格,包括
    IslandID
  • 您的第一个查询如下所示:

    SELECT *
    FROM Birds
    INNER JOIN Sightings ON Birds.BirdID=Sightings.BirdID 
    WHERE Sightings.IslandID <> Birds.IslandAlpha
    
    选择*
    来自鸟类
    鸟类内部连接目击。BirdID=目击。BirdID
    在那里可以看到岛上的鸟,岛上的阿尔法
    
    您的第二个查询将是相同的,但是在
    WHERE
    子句中使用
    =
    而不是


    请向我们提供您正在使用的表和列的信息。

    我认为您是在问这个问题,因为IslandAlpha ObsLoc不可能进行简单的表连接和筛选,因为IslandAlpha是从每只鸟的第一次观察记录中派生出来的。提取每只鸟的第一条观察记录需要嵌套查询。在观测中需要唯一的记录标识符-应提供自动编号。假设存在观察日期/时间字段,请考虑:

    SELECT * FROM Observations WHERE ObsID IN 
        (SELECT TOP 1 ObsID FROM Observations AS Dupe 
         WHERE Dupe.ObsBirdID = Observations.ObsBirdID ORDER BY Dupe.ObsDateTime);
    
    现在将该查询用于后续查询

    SELECT * FROM Observations 
    INNER JOIN Query1 ON Observations.ObsBirdID = Query1.ObsBirdID 
    WHERE Observations.ObsLocID <> Query1.ObsLocID;
    
    从观察中选择*
    内部连接Query1 ON Observations.ObsBirdID=Query1.ObsBirdID
    其中,ObsLocID查询1.ObsLocID;
    
    编辑问题以显示样本数据和所需输出。“IslandAlpha”数据在哪里?