如何在SQL中将计算列添加到Access表?
我知道我可以像这样添加一个带有SQL的列:
ALTER TABLE Clients ADD COLUMN AccountDate TEXT(60)
谢谢, 维克托•
答案 0 :(得分:5)
您无法使用SQL添加计算列,因为计算字段需要表达式且无法通过SQL提供。从技术上讲,计算字段是基本类型 - int,double,text等。基本类型之上是一个表达式,可以帮助Access执行数学/逻辑。
您可以使用VBA创建计算列
-- create a module and let's assume that
-- your table has Field1 integer and Field2 integer
-- we will add field3
Public Sub CreateField()
Dim DB As DAO.Database
Dim TableDef As DAO.TableDef
Dim Fld As DAO.Field2
Set DB = CurrentDb()
Set TableDef = DB.TableDefs("Table1")
Set Fld = TableDef.CreateField("field3", dbDouble)
Fld.Expression = "[field1] * [field2]"
TableDef.Fields.Append Fld
MsgBox "Added"
End Sub
正如Gordon和BJones所提到的,您可以使用相关计算创建视图或保存的查询。
答案 1 :(得分:2)
我认为MS Access不支持计算列。相反,您可以创建一个视图:
create view v_clients as
select c.*, (col1 + col2) as col3
from clients;
答案 2 :(得分:0)
你想要它计算什么?你尝试过类似的东西吗?
ALTER TABLE Clients
ADD COLUMN AccountDate AS (Column1 * Column2);