在表创建上创建计算列

时间:2015-02-25 16:09:54

标签: sql sql-server tsql calculated-columns

create table Sales
( 
    SalesID int identity (100000000,1) primary key,
    SaleDate datetime,
    ProductSold varchar (40) not null,
    QuantitySold int,
    SalePrice smallmoney,
    Tax as SalePrice * .13  ,
    TotalSale  as (SalePrice + Tax)   
 );

我想让TotalSale列计算Saleprice列加Tax,但它会计算出Tax,因此无法使用。如果有办法的话,我该如何去做呢?

错误:

  

表'Sales'中的计算列'Tax'不允许在另一个计算列定义中使用。

1 个答案:

答案 0 :(得分:0)

我还提倡存储计算和存储税。在任何一种情况下,您的错误的原因是由于多次使用计算列。我已编辑了CREATE TABLE以将税收存储为smallmoney并计算了TotalSale的SalesPrice + Tax。

This will help

基本上,您不能多次定义计算列。您可以在链接中执行解决方法,即在SalePrice列使用中“双击”:

create table Sales
( 
    SalesID int identity (100000000,1) primary key,
    SaleDate datetime,
    ProductSold varchar (40) not null,
    QuantitySold int,
    SalePrice smallmoney,
    Tax smallmoney ,
    TotalSale  as (SalePrice + Tax)   
 );