如果它不是重复值,如何 Select Access 中的记录

How to Select a record in Access if it is not a duplicate value

好吧,看标题好像不太懂,我尽量说清楚。 基本上,我有一个 table,我们称它为 'records'。在这个table中我有一些产品,我存储了'id','codex'(这是整个数据库中某个产品的唯一标识符),'price'和'situation'。最后一个是一个字符串,它告诉我产品是刚进入商店(在这种情况下设置为 'IN'),还是已经售出(在这种情况下为 'OUT')。 该数据库不是我们创建的,尽管它的结构非常糟糕,但我必须使用它......最初设计数据库的人决定在产品情况从 'IN' 变为 'OUT' 时注册以下方式:他没有更新 table 中的相应值,而是使用 'IN' 的数据行作为情况,并复制它的设置,当时 'OUT' 作为情况。 总结一下:如果一个产品还没有售出,它会有一行专用数据;否则这些行将是两行,除了 'situation' 字段外都是相同的。 我需要做的是:select 如果(且仅当)没有重复的产品。基本上,我可以(并且应该)寻找 'codex',如果我的 Count(codex) 最终大于 1,我不会 select 该行。 我希望这个过程的解释足够清楚...... 我尝试了很多替代方案(不,SELECT DISTINCT 不是解决方案):谁知道如何做到这一点?因为真的,我们三个 none 可以想出一个好的解决方案! 这是 table 的架构,我希望它足够清楚,如果不清楚,请不要犹豫,询问更多详细信息。 提醒一下:项目在(叹息...)VB.net,数据库在Microsoft Access (mdb)。 我在 Whosebug 上找不到解决方案,我希望这不是一个重复的问题!在此先感谢您的帮助。

id     codex    price    situation
 1         1     2.50           IN
 2         1     2.50          OUT
 3         2     3.45           IN
 4         3    21.50           IN
 5         2     3.45          OUT
 6         4     1.50           IN

检查我是否明白你的问题是什么......在你的例子中table你只想得到 ID 为 4 a 6 的行,对吗?

如果这就是您想要的,如果您只想要未售出的,请尝试此命令

SELECT 
   *
FROM 
   records
WHERE 
   codex 
   not in 
   (
      SELECT
         codex 
      FROM 
         records 
      WHERE 
         situation ='OUT'
   )