ADO SQL обновляет таблицу результатом группы запросом

Я пытаюсь обновить записи в .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;

Какие-либо идеи?

1
задан Juan Mellado 3 May 2012 в 15:09
поделиться

3 ответа

Если вы делаете это в Access, вам необходимо использовать агрегатную функцию домена:

UPDATE table1 
SET PH_SORT = DCount("PH_BSP","Table1","PH_BSP='" & PH_BSP & "'")

Выше предполагается, что PH_BSP является текстовым полем, удалите одинарные кавычки, если оно числовое.

1
ответ дан 3 September 2019 в 00:38
поделиться

Вы пробовали что-то подобное?

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.

Думаю, это или что-то подобное должно сработать.

0
ответ дан 3 September 2019 в 00:38
поделиться

Не проверено, но если изложить утверждение таким образом, это должно решить вашу проблему

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 и подзапросами, квадратные скобки тоже иногда помогают, но по памяти ненадежно.

1
ответ дан 3 September 2019 в 00:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: