微软访问错误中的基本SQL查询

时间:2013-07-25 15:15:22

标签: sql ms-access ms-access-2007

SELECT 
FROM Query1, Table2, Table3
UPDATE Table2
SET companycount=(SELECT COUNT(*)
FROM Table3
WHERE Table2.CASE#=Table3.CASE2#)
;

这是我试图运行的查询但是我一直在Access中收到错误消息,声明SELECT中的某些内容拼写错误或错误。谁会知道为什么会这样?如果这太模糊,请告诉我,我会提供更多信息。提前谢谢!

编辑:CASE,CASE2和companycount都是列名 EDIT2:

很抱歉抱怨数据是保密的,所以我不能给予多少。基本上我有2个表有多个列,我在查询1中做了一个内连接。现在我被指示在第一个表中添加一个列:'Table2'来查找所有多个值(我的意思是这是有的项目编号的列,国家/州的另一列,以及支票金额的另一列。现在在不同的州和国家/地区可能存在多个相同的项目。)但是,手动输入数据的人没有划分金额。 “检查金额”列由同一项目的编号。例如,假设我有1个项目,分发到3个国家,在数据表上占用3行。而不是将13,000美元的总成本除以3,数据表示“支票金额”列中3行中每一行的13,000美元。所以我想要实现的目标是,我只想更新分发给多家公司的项目,并更改其“支票金额”以反映其分配的国家数量。(因此项目1 = 3个国家/地区的13,000美元。结果应该是每个国家的“支票金额”应该是4,333美元而不是13,000美元。如果有任何意义,请让我知道,并感谢你提前帮助。

1 个答案:

答案 0 :(得分:0)

我猜你正在尝试做这样的事情

  UPDATE T2
  SET T2.companycount= a.numb
  FROM Table2 T2, (SELECT [CASE2], count(1) as numb FROM Table3 group by [CASE2]) a
  WHERE T2.[CASE]=a.[CASE2]

抱歉,以上内容适用于SQL Server,请尝试以下访问

UPDATE Table2 as T2
INNER JOIN 
(SELECT [CASE2], Count(1) AS numb FROM Table3 group by [CASE2]) AS a
ON a.[CASE2]=T2.[CASE]
SET T2.companycount=a.numb