2012-05-18 94 views
0

我正在构建一些基本的SQL查询,并且已经在'group By'子句中脱节。我在列标题上使用了别名,但在尝试按照我的结果分组时,遇到了问题。我此刻的代码是: -SQL组By子句(无效列)?

SELECT     
    vwREP_GP_ContractProjectPurchaseCostCatID.PACOSTCATID AS COST_CAT_CODE, 
    vwREP_GP_ContractProjectPurchaseCostCatID.PACOSTCATNME AS COST_CAT_NAME, 
    vwREP_GP_ContractProjectPurchaseRpt.COST, 
    vwREP_GP_ContractProjectPurchaseRpt.ITEMDESC AS ITEM, 
    vwREP_GP_ContractProjectPurchaseRpt.CREDITOR, 
    vwREP_GP_ContractProjectPurchaseRpt.DOC_NUM AS DOCUMENT_NUMBER, 
    vwREP_GP_ContractProjectPurchaseRpt.DESCRIPTION, 
    vwREP_GP_ContractProjectPurchaseRpt.DOC_DATE AS DATE, 
    vwREP_GP_ContractProjectPurchaseRpt.PROJECT AS JOB_CODE_STAGE, 
    vwREP_GP_ContractProjectPurchaseRpt.COMPOUNDNAME AS CATEGORY_DESCRIPTION 
FROM   
    vwREP_GP_ContractProjectPurchaseCostCatID 
INNER JOIN 
    vwREP_GP_ContractProjectPurchaseRpt ON wREP_GP_ContractProjectPurchaseCostCatID.PACOSTCATID = vwREP_GP_ContractProjectPurchaseRpt.PACOSTCATID 


SELECT CATEGORY_DESCRIPTION, SUM(COST) AS TotalCost FROM 
    ( 
     SELECT COMPOUNDNAME AS CATEGORY_DESCRIPTION FROM wREP_GP_ContractProjectPurchaseRpt 
    ) A 
GROUP BY CATEGORY_DESCRIPTION 

额外的代码来处理使用别名列名我现在得到一个错误,“成本”是一个无效的列已经加入?我没有改变这个列名?

我知道它明显地盯着我,但我的大脑并没有参与,所以如果任何人都可以指出我出错的地方,或者做一个简单的方法,这将是一个很大的帮助。

在此先感谢。

回答

1

使用

SELECT COMPOUNDNAME AS CATEGORY_DESCRIPTION, 
     Sum(COST) AS TotalCost 
FROM vwREP_GP_ContractProjectPurchaseRpt 
GROUP BY COMPOUNDNAME 

代替

SELECT CATEGORY_DESCRIPTION,SUM(COST)AS TotalCost FROM 
( 
    SELECT COMPOUNDNAME AS CATEGORY_DESCRIPTION FROM vwREP_GP_ContractProjectPurchaseRpt 
) A 
GROUP BY CATEGORY_DESCRIPTION 

你不包括内部查询的费用列(这是所有正在对SQL Server Management Studio中2005年完成)。

+0

谢谢你的答案。现在工作正常。 – user1086159

1
SELECT CATEGORY_DESCRIPTION, SUM(COST) AS TotalCost 
FROM ( 
     SELECT COMPOUNDNAME AS CATEGORY_DESCRIPTION, COST 
     FROM vwREP_GP_ContractProjectPurchaseRpt 
     ) A 
GROUP BY 
     CATEGORY_DESCRIPTION