2

SQL Server Management Studio 2005 で SQL クエリを実行しましたが、結果が表示されたときに、Total_Cost列が希望どおりにフォーマットされていません。

句を追加しようとしましたDeclare @TOTAL_COST decimal(12,2)が、これを機能させることができないようですので、再度削除しました。

私の質問は: -

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 vwREP_GP_ContractProjectPurchaseCostCatID.PACOSTCATID = vwREP_GP_ContractProjectPurchaseRpt.PACOSTCATID

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

これにより、探している結果が得られますがTotal_Cost、5 桁の数値が生成されます。

例えば:

156713.55000

次の行に沿って何かを読み取る結果を取得する最良の方法は何ですか?

156713.55

前もって感謝します

4

2 に答える 2

1
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 vwREP_GP_ContractProjectPurchaseCostCatID.PACOSTCATID = vwREP_GP_ContractProjectPurchaseRpt.PACOSTCATID



SELECT  CATEGORY_DESCRIPTION, CAST(SUM(COST) AS DECIMAL(12, 2)) AS TOTAL_COST

FROM    (  
        SELECT COMPOUNDNAME AS CATEGORY_DESCRIPTION, COST 
        FROM   vwREP_GP_ContractProjectPurchaseRpt 
        ) A
GROUP BY 
        CATEGORY_DESCRIPTION     
于 2012-05-18T11:46:46.077 に答える
0

小数点以下 2 桁だけを保存する場合は、心配する必要はありません。私が知っているほとんどすべての言語は、余分なゼロを破棄します (SQL を除く) :)

一方、2 つ以上の小数 (つまり 123.456) を格納している場合は、正確さのために代わりに round() を使用します。

 ...

SELECT  CATEGORY_DESCRIPTION, round(SUM(COST), 2) AS TOTAL_COST  

FROM    (   
        SELECT COMPOUNDNAME AS CATEGORY_DESCRIPTION, COST  
        FROM   vwREP_GP_ContractProjectPurchaseRpt  
        ) A 

GROUP BY  
        CATEGORY_DESCRIPTION  
于 2012-05-18T11:55:07.127 に答える