我有一个来自JDE / AS400的ODBC链接表,我将其引入MS Access 2010.该表有四个数据类型为十进制的字段,一旦我将它们写入一个数据类型,我需要转换为双数据类型临时表。是否有办法在一个查询中包含四个alter table / column语句?
如果有人想知道,存储在这些字段中的数据是价格和成本,但它们存储在ODBC表中作为15的十进制值,带有0个尾随小数,我必须将两个除以10,000和一个除以100,000获取正确位置的小数点以表示真实的价格/成本例如,价格字段中的3558767实际上是355.8767或355.88舍入的价格)。当我将相同的数据带入Access并除以10000时,我得到355.00。我需要正确的美分值。我过去唯一能做到这一点的方法是在执行除法之前编写一个alter table / alter column查询来将数据类型更改为double。
由于我有四个这样的字段,我想一次改变或修改所有四个字段。有什么想法吗?
感谢任何帮助。
答案 0 :(得分:2)
在Access(或符合ANSI标准的SQL,据我所知)中没有办法同时更改多个列;你必须要么:
在这种情况下真的很流行,因为你将以任何一种方式运行四个脚本。
答案 1 :(得分:1)
如前所述,Access SQL不允许您使用单个SQL语句更改多个列。但是,您的问题中的背景信息有些令人困惑。
SELECT decimal_field/10^4 AS my_quotient
FROM tblFoo;
decimal_field
是十进制类型,精度= 15,比例= 0。
当我将3558767
存储到decimal_field
并运行该查询时,Access 2007会将355.8767
作为my_quotient
。这就是我理解你想要但却没有得到的结果。
如果您可以对其进行排序,也许您不需要更改任何列。