【问题标题】:summing values from one table into another table将一个表中的值相加到另一个表中
【发布时间】:2015-11-15 10:39:14
【问题描述】:

我是使用 VB6/Access 2000 的 SQL 新手,我正在尝试获取一个查询,该查询将一个表中的值总和放入另一个表中。 VB6 可以完成这项工作,但速度太慢了。 我在Access中搜索并尝试了很多次,只是因为关键字IN,ON,(INNER)JOIN而迷失了方向,每次都得到不同的错误。

核心代码应该如下:

update t1
set t1.value = sum(t2.value)
where
val(t2.code)>89
and
t2.date=t1.date
  • t1.date 是一个日期,没有重复
  • t2.code 是一个变量字符串,例如 '0081', '090'
  • 值是单精度的

经过进一步搜索,我在这里发现了一个类似的问题(http://goo.gl/uqlw0U)并尝试了:

UPDATE t1
SET t1.value = 
    (
SELECT 
    SUM(t2.value) 
FROM spese
    WHERE
     t1.date=t2.date
AND
    val(t2.code)>89
    )

但 Access 只是说“需要可更新的查询”——这是什么意思?

【问题讨论】:

  • 感谢编辑,我写的示例代码完全一样,但是当我发布时它变成了内联。
  • 在没有“过程”存储过程工具的情况下,我怀疑您搞砸了,因为您想要的可能无法表示为基于 SQL 集的操作。因此,您可以在客户端代码中使用聚合查询的结果迭代更新的表,或者您可以使用 JOIN 和构建新表的生成表查询来执行此操作(然后 DROP 旧表,通过重命名新表ADOX,创建任何所需的索引)。

标签: vb6 ms-access-2000


【解决方案1】:

试试这个:

UPDATE t1
 SET t1.value = SUM(t2.value)
FROM t1, t2
WHERE
 val(t2.code)>89
AND
 t2.date=t1.date

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-06
    • 1970-01-01
    • 2020-02-02
    • 1970-01-01
    • 1970-01-01
    • 2019-11-07
    相关资源
    最近更新 更多