2016-11-28 3 views
0

У меня есть следующая проблема: я хотел бы обновить таблицу Access со значением. Значение должно быть добавлено, если выполняется несколько условий.Обновить поле со значением в соответствии с вступлением

  • Если значение в столбце А существует больше, чем один раз и
  • Если значение в столбце B существует больше, чем один раз и
  • Если столбец С не является пустым

Я попробовал его с следующий запрос, который почти работает, но, похоже, игнорирует условие в столбце 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

К сожалению, изменение этого параметра просто игнорирует условие «должно иметь более одного входа» и просто фокусируется на «непустом» состоянии. – BoboAUT

+0

Третье условие - это «не пустое» условие на 'c'. –

Смежные вопросы