我正在尝试使用包含相同值的记录数更新.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;
有什么想法吗?
答案 0 :(得分:1)
未经测试,但如此陈述声明这应解决您的问题
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 Query中,看看它是如何进行的。从内存中我常常对Access和子查询有很多麻烦,方括号有时也会有所帮助,但内存不可靠。
答案 1 :(得分:1)
如果您在Access中执行此操作,则需要使用域聚合函数:
UPDATE table1
SET PH_SORT = DCount("PH_BSP","Table1","PH_BSP='" & PH_BSP & "'")
以上假设PH_BSP是一个文本字段,如果它是数字,则删除单引号。
答案 2 :(得分:0)
你有没有试过类似的东西?
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。
但我猜这个或类似的东西都应该这样做。