关于表达式列
有次我使用了下面的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语句中,这一点大家一定要记得。