关于表达式列

有次我使用了下面的SQL语句:

Select 产品, Sum(数量) As 数量, Sum(金额) As 金额 From {订单} Group By 产品

在执行的时候,提示了这样的错误:别名“金额”循环引用!
当时我觉得很奇怪,明明没有循环引用啊!
其实这是因为金额列是一个表达式列,并不存在于后台数据库,所以正确的SQL语句是:

Select 产品, Sum(数量) As 数量, Sum(数量 * 单价 * (1 - 折扣)) As 金额 From {订单} Group By 产品

同样下面的SQL语句也是错误的:

Select 产品, 数量, 金额 From {订单}

执行的时候会提示错误:至少有一个参数没有指定值!
正确的语句是:

Select 产品, 数量, (数量 * 单价 * (1 - 折扣)) As 金额 From {订单}

表达式列不能出现在SQL语句中,这一点大家一定要记得。


本页地址:http://www.foxtable.com/webhelp/topics/2345.htm