Sql 如何在查询中从中选择数据进行计算

Sql 如何在查询中从中选择数据进行计算,sql,Sql,我的表有1000行和两个主列(invoice\u no,exe\u amount),我想编写以下查询: select invoice_ no, exe_amount, exe_amount*0.02 as edu_duty, exe_amount*0.01 as ed_duty, (exe_amount + edu_duty + ed_duty) as sub_total, subtotal*0.0605 as st

我的表有1000行和两个主列(
invoice\u no
exe\u amount
),我想编写以下查询:

select invoice_ no, 
       exe_amount, 
       exe_amount*0.02 as edu_duty, 
       exe_amount*0.01 as ed_duty, 
       (exe_amount + edu_duty + ed_duty) as sub_total, 
       subtotal*0.0605 as st_amount, 
       sub_total*.0103 as ot_amount,
       exe_amount + subtotal + st_amount + ot_amount as gd_amount 
from table1;
若我用变量来处理它,查询会给出多个值的错误


我该如何处理这个问题?有任何解决问题的教程链接吗?

计算时不能使用别名

select invoice_ no, 
       exe_amount, 
       exe_amount*0.02 as edu_duty, 
       exe_amount*0.01 as ed_duty, 
      (exe_amount + (exe_amount*0.02) + (exe_amount*0.01)) as sub_total, 
      ((exe_amount + (exe_amount*0.02) + (exe_amount*0.01)))*0.0605 as st_amount, 
      (exe_amount + (exe_amount*0.02) + (exe_amount*0.01)) *.0103 as ot_amount,
      ( exe_amount + 
        (exe_amount + (exe_amount*0.02) + (exe_amount*0.01)) + 
        ((exe_amount + (exe_amount*0.02) + (exe_amount*0.01)))*0.0605 + (exe_amount + (exe_amount*0.02) + (exe_amount*0.01)) *.0103 
      ) as gd_amount 
from table1;
将本机更改为上面的一个是

SELECT invoice_ no,
       exe_amount,
       edu_duty ,
       ed_duty,
       sub_total,
       subtotal*0.0605 as st_amount, 
       sub_total*.0103 as ot_amount,
       exe_amount + subtotal + (subtotal*0.0605) + (sub_total*.0103) as gd_amount
FROM (
        select invoice_ no, 
               exe_amount, 
               exe_amount*0.02 as edu_duty, 
               exe_amount*0.01 as ed_duty, 
              (exe_amount + (exe_amount*0.02) + (exe_amount*0.01)) as sub_total
       from tableName
)t

你的dbms是什么?mysql?sqlserver?oracle?这个查询有什么问题?你的错误是什么?