2016-11-28 58 views
0

我遇到以下問題:我想用值更新Access表。如果多個條件爲真,則應該添加該值。根據出現的值更新字段

  • 如果如果如果列C不爲空

我嘗試了與在列B中的值存在超過一次AND

  • 更A列中的值存在不止一次與
  • 下面的查詢幾乎可以工作,但似乎忽略了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(循環遍歷所有),但我想避免這種情況。我真的很想知道爲什麼它不起作用。

    非常感謝!

  • 回答

    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 <> " "; 
    
    +0

    不幸的是,它改變這種簡單的忽略了「必須有一個以上的occurence」狀態,只是側重於「不空」的狀態。 – BoboAUT

    +0

    第三個條件是'c'上的「非空」條件。 –

    相關問題