2016-02-26 88 views
0

我曾嘗試使用round功能,例如348.426580轉換爲348.43
但在下面的查詢我用我得到的是結果348.430000[ShippingCost]SQL ROUND()函數的問題

我怎麼能忽略這四個零?

SELECT S.Product_Name, 
     SPD.UnitPrice, 
     SPD.Quantity, 
     SPD.Quantity * SPD.UnitPrice Amount, 
     CONVERT(INT,(SPD.Quantity * SPD.UnitPrice)/(SUM(SPD.Quantity * SPD.UnitPrice) OVER()) * 100) [Cost %], 
     ROUND((SPD.Quantity * SPD.UnitPrice)/(SUM(SPD.Quantity * SPD.UnitPrice) OVER()) * Sp.Shipping_Cost,2) [ShippingCost], 
     (SPD.Quantity * SPD.UnitPrice)/(SUM(SPD.Quantity * SPD.UnitPrice) OVER()) * Sp.Customs_Cost [CustomsCost], 
     (SPD.Quantity * SPD.UnitPrice)/(SUM(SPD.Quantity * SPD.UnitPrice) OVER()) * Sp.Shipping_Cost + (SPD.Quantity * SPD.UnitPrice)/(SUM(SPD.Quantity * SPD.UnitPrice) OVER()) * Sp.Customs_Cost +SPD.Quantity * SPD.UnitPrice - SpD.Discount [TotalAmount] 
FROM dbo.Stock_Purchase SP 
INNER JOIN dbo.Stock_Purchase_Details SPD 
    ON SP.Purchase_ID = SPD.Purchase_ID 
INNER JOIN dbo.Store S 
    ON SPD.Pro_ID = S.Pro_ID; 
+0

如果您知道_displayed zeros_,那麼恐怕這完全是非數據庫問題。這是UI工作。 –

回答

3

您可以將其轉換爲小數,例如DECIMAL(10, 2)。由於自動鑄造並四捨五入,沒有必要爲round()

CAST((SPD.Quantity * SPD.UnitPrice)/(SUM(SPD.Quantity * SPD.UnitPrice) OVER()) * Sp.Shipping_Cost as decimal(10, 2)) as [ShippingCost], 
0
ROUND(column_name,decimals) 

列名所需的要繞場一週。

decimals必需指定要返回的小數位數。

See這個。