Php 如何在查询中求别名字段的和

Php 如何在查询中求别名字段的和,php,mysql,sql,join,Php,Mysql,Sql,Join,下面我有一个问题 SELECT s.reference_no as rno , a.id, a.product_name, a.sale_id, s.id as sale, count(CASE WHEN b.id = 1 THEN b.name ELSE NULL END) as tax1, count(CASE WHEN b.id = 2 THEN b.name ELSE NULL END) tax2, count(CASE WHEN b.i

下面我有一个问题

SELECT  s.reference_no as rno , a.id, a.product_name, a.sale_id, s.id as sale,
        count(CASE WHEN b.id = 1 THEN b.name ELSE NULL END) as tax1,
        count(CASE WHEN b.id = 2 THEN b.name ELSE NULL END) tax2,
        count(CASE WHEN b.id = 3 THEN b.name ELSE NULL END) tax3,
        count(CASE WHEN b.id = 4 THEN b.name ELSE NULL END) tax4,
        count(CASE WHEN b.id = 5 THEN b.name ELSE NULL END) tax5,

       sum(CASE WHEN b.id = 1 THEN a.val_tax ELSE NULL END) sum1,
       sum(CASE WHEN b.id = 2 THEN a.val_tax ELSE NULL END) sum2,
       sum(CASE WHEN b.id = 3 THEN a.val_tax ELSE NULL END) sum3,
       sum(CASE WHEN b.id = 4 THEN a.val_tax ELSE NULL END) sum4,
       sum(CASE WHEN b.id = 5 THEN a.val_tax ELSE NULL END) sum5

FROM    sale_items a
        INNER JOIN tax_rates b
            ON a.tax_rate_id = b.id
         JOIN sales s ON s.id = a.sale_id   
GROUP   BY s.id
order BY sale desc

我想要额外的总税(sum1+sum2+sum3+sum4+sum5)。但当我尝试它时,在“字段列表”中抛出一个错误未知列“total_tax_sum1”。那么如何汇总别名字段。您可以找到我的三表数据库模式

您不能在定义别名的
选择中使用别名。简单地做:

sum(case when b.id in (1, 2, 3, 4, 5) then a.val_tax end) as grandtotal_tax
请注意,
else NULL
是多余的,因为
NULL
是在
case
语句中没有匹配项时的值

此外,如果
b.id
只能采用这五个值,则可以简化为:

sum(a.val_tax) as grandtotal_tax