将SUM()生成的两个值添加为新列

时间:2015-08-19 20:21:47

标签: sql sql-server

我有以下查询:

POC_emissions

我现在需要做的是将NON_POC_emissionsTOTAL中的值添加到名为let {s} SELECT permit_id, SUM(poc_emissions) AS POC_emissions, SUM(non_poc_emissions) AS NON_POC_emissions, (POC_emissions + NON_POC_emissions) AS Total FROM ( .... SUBQUERY ...) main GROUP BY permit_id 的新列中。

我试过了:

vector<Foo>

但它给了我一个错误。

有什么建议吗?

由于

1 个答案:

答案 0 :(得分:5)

查询:

SELECT   permit_id, 
         Sum(poc_emissions)                            AS Totle_Poc_emissions, 
         Sum(non_poc_emissions)                        AS Total_Non_poc_emissions, 
         (Sum(poc_emissions) + Sum(non_poc_emissions)) AS total 
FROM     ( .... subquery ...) main 
GROUP BY permit_id

原因:

您不能在order of execution之后使用您提供的新别名Totle_Poc_emissionsTotal_Non_poc_emissions作为SQL查询,这意味着 FROMGROUP BY发生在SELECT 之前。因此,GROUP BY将不知道新的别名是什么,因为SELECT之后会发生,它只知道列名。