根据出现的值更新字段值

时间:2016-11-28 18:16:11

标签: sql ms-access

我有以下问题:我想用值更新Access表。如果多个条件为真,则应添加该值。

  • 如果A列中的值存在多次AND
  • 如果B列中的值存在多次AND
  • 如果C列不为空

我尝试使用以下查询,它几乎可以工作,但似乎忽略了B列上的条件。例如,有三条记录。这三个在" a"中具有相同的价值。但其中只有两个在" b"中具有相同的值。仍然,查询写道" f"对于他们三个人。

UPDATE table1 SET a = "f"  
WHERE a IN (SELECT a FROM table1 GROUP BY a, b HAVING COUNT(a) > 1) 
AND b IN (SELECT b FROM table1 GROUP BY a, b HAVING COUNT(b) > 1) AND [c] <> " ";

它可能适用于VBA(循环使用所有内容),但我想避免这种情况。我真的想知道为什么它不起作用。

非常感谢!

1 个答案:

答案 0 :(得分:0)

我认为你的group by条件错了。根据您的描述:

UPDATE table1
    SET a = "f"  
WHERE a IN (SELECT a FROM table1 GROUP BY a HAVING COUNT(a) > 1) AND
      b IN (SELECT b FROM table1 GROUP BY b HAVING COUNT(b) > 1) AND
      c <> " ";