SELECT *,
(select SUM(sl.priceeach*sl.qty) as 'tot'
from salesline sl where sl.soid=so.soid) as 'total',
so.total,
so.discount,
so.tax
from salesorder so
我想弄清楚这个查询,但我无法在另一个coloumn中显示总数 显示含税和折扣最低数据
ERROR : #1054 - Unknown column 'so.total' in 'field list'
我的查询有什么问题?
答案 0 :(得分:1)
首先,您不希望为此使用相关子查询。事实上,你根本不应该使用它们,因为它们像光标一样按行进行逐行处理。
CTE或派生表将完成这项工作。
SELECT a.total,
so.discount,
so.tax
FROM salesorder so
JOIN
(SELECT sl.soid,SUM(sl.priceeach*sl.qty) AS 'total'
FROM salesline sl GROUP BY sl.soid) A
ON A.soid = so.soid
现在,total是一个可用于查询中其他计算的列,例如:
SELECT a.total,
so.discount,
so.tax,
so.tax*a.total as TaxableAmount
FROM salesorder so
JOIN
(SELECT sl.soid,SUM(sl.priceeach*sl.qty) AS 'total'
FROM salesline sl GROUP BY sl.soid) A
ON A.soid = so.soid