Я пытаюсь обновить записи в .mdb таблице с количеством записей, содержащих то же значение.
SQL ниже не работает, но я думаю, дает признак того, чего я пытаюсь достигнуть.
UPDATE table1 AS A
INNER JOIN (SELECT PH_BSP , Count(PH_BSP) AS PHCOUNT FROM table1 GROUP BY PH_BSP) AS B
ON A.PH_BSP=B.PH_BSP
SET A.PH_SORT = B.PHCOUNT;
Какие-либо идеи?
Если вы делаете это в Access, вам необходимо использовать агрегатную функцию домена:
UPDATE table1
SET PH_SORT = DCount("PH_BSP","Table1","PH_BSP='" & PH_BSP & "'")
Выше предполагается, что PH_BSP является текстовым полем, удалите одинарные кавычки, если оно числовое.
Вы пробовали что-то подобное?
update table1 as a
set a.ph_sort = (
select COUNT(b.ph_bsp) as phcount
from table1 b
where b.ph_bsp = a.ph_bsp)
Я предполагаю, что здесь SQL Server.
Думаю, это или что-то подобное должно сработать.
Не проверено, но если изложить утверждение таким образом, это должно решить вашу проблему
UPDATE A
SET A.PH_SORT = B.PHCOUNT
From table1 AS A
INNER JOIN (SELECT PH_BSP , Count(PH_BSP) AS PHCOUNT FROM table1 GROUP BY PH_BSP) AS B
ON A.PH_BSP=B.PH_BSP
Редактировать: Ваша проблема может быть связана с подзапросом, я бы попробовал поместить эту часть в отдельный запрос Access и посмотреть, что получится. По памяти у меня были большие проблемы с Access и подзапросами, квадратные скобки тоже иногда помогают, но по памяти ненадежно.