我在Access数据库中有2个表:[Importing GTRX]
和[Cells_2G]
。我想用相关[cells_2G].TRX900
条记录的数量更新[importing GTRX]
。为此,我编写了两个SQL,但它们未能更新。
第一个代码:
UPDATE
[Importing GTRX] INNER JOIN Cells_2G
ON [Importing GTRX].[Cell Name] = Cells_2G.[Cell Name]
SET
cells_2g.trx900=Count([importing gtrx].frequency)
WHERE
(
(
[Importing GTRX].frequency>=1
And
[Importing GTRX].frequency<=124
)
)
AND
[Importing GTRX].[active status]="activated"
;
当我运行此查询时,它说:
您的查询未将指定的表达式TRX900作为聚合函数的一部分
当我添加group by [cells_2g.trx900]
时,我遇到另一个错误。
第二个代码:
UPDATE
Cells_2G inner join
(
SELECT [Cell Name], count(*) AS TRX900
FROM [importing GTRX]
WHERE
[Active status]="activated"
AND [Importing GTRX].frequency>=1
And [Importing GTRX].frequency<=124
GROUP BY [cell name]
) AS TT ON TT.[Cell Name] = Cells_2G.[Cell Name]
SET
cells_2g.trx900=TT.TRX900
;
当我尝试运行此程序时,Access会说:
操作必须使用可更新的查询。
现在我该怎么办?
您的帮助表示赞赏。
答案 0 :(得分:1)
除了加入之外,您还可以尝试使用在线子查询来计算目标值,例如:
UPDATE [Cells_2G]
SET [TRX900] = (
SELECT COUNT(*)
FROM [Importing GTRX]
WHERE (
[Importing GTRX].[Cell Name] = [Cells_2G].[Cell Name]
AND [Importing GTRX].frequency >= 1
AND [Importing GTRX].frequency <= 124
)
)