SQL计算两列中的值并在同一个表的其他列中显示结果

时间:2013-09-03 12:55:47

标签: sql sql-server create-table alter

我在一个表中有两列,如下所示:

CREATE TABLE Invoices
(
  ID_Invoice...
  ....
  UnitPrice decimal (15,2) NOT NULL,
  Discount (15,2) NOT NULL,
)

所以我想在此表格中添加一个新列,计算最终价格 - UnitPrice - Discount=TotalCost?请帮忙。

2 个答案:

答案 0 :(得分:1)

如果您使用的是SQL Server,请尝试计算列:

CREATE TABLE Invoices
(
  ID_Invoice...
  ....
  UnitPrice decimal (15,2) NOT NULL,
  Discount (15,2) NOT NULL,
  TotalCost AS UnitPrice - Discount
)

如果您使用的是MySQL,那么您唯一的选择就是添加一个物理列。不要这样做 - 它会使桌子非规范化并且不会带来任何好处。只需动态查询该值:

SELECT
  ID_Invoice,
  UnitPrice,
  Discount,
  UnitPrice - Discount AS TotalCost

MySQL查询非常简单,如果不存储其他列,则无需担心TotalCostDiscountUnitPrice列不同步。

答案 1 :(得分:0)

Alter Table Invoices 
Add TotalCost Decimal(15,2)

将列添加到您的表

现在要为新列添加值

Update Invoices
set TotalCost = UnitPrice - Discount

如果有效,请告诉我