簡體   English   中英

舍入錯誤SQL Server值

[英]Round error Sql Server value

您好,我在針對SQL Server的查詢中遇到問題,我的問題是在列調用TotaleCap,我的問題是TotaleCap應該是Quantitàfor CostoUnitario的結果,但賬單沒有回來,您能幫我嗎? 謝謝

查詢:

DECLARE @T AS TABLE (Descrizione VARCHAR(5000), Totale MONEY, DescrizioneEstesa VARCHAR(5000), Immagine VARCHAR(5000), CostoUnitario MONEY, Quantita MONEY, DescrizioneDis VARCHAR(5000)) INSERT INTO @T select Capitolo.Descrizione,(SottoCapitolo.Quantita * SottoCapitolo.CostoUnitario) as Totale, SottoCapitolo.DescrizioneEstesa ,SottoCapitolo.Immagine,SottoCapitolo.CostoUnitario,SottoCapitolo.Quantita,SottoCapitolo.Descrizione as DescrizioneDis from Capitolo inner join SottoCapitolo on SottoCapitolo.IdCapitolo = Capitolo.IdCapitolo where IdPreventivo = '" + IdPreventivo + "' SELECT CASE WHEN ROW_NUMBER() OVER(PARTITION BY a.Descrizione order by a.Descrizione) = 1 THEN a.Descrizione ELSE '' END AS Descrizione,a.DescrizioneDis, round(a.CostoUnitario,0) as CostoUnitario, a.Quantita, round(a.Totale,0) as TotaleCap, a.DescrizioneEstesa, a.Immagine FROM( SELECT 1 AS d, ROW_NUMBER() OVER(PARTITION BY Descrizione order by Descrizione) AS r, Descrizione, Totale, DescrizioneDis, Immagine, CostoUnitario, Quantita, DescrizioneEstesa FROM @T  UNION ALL SELECT 2, 0, Descrizione, SUM(Totale), '', '', '', '', ''  FROM @T  GROUP BY Descrizione  ) AS a ORDER BY a.Descrizione, a.d

輸出畫面

在此處輸入圖片說明

從問題上說,從頭到腳都是從頭到尾。
驗證問題:

select 3.1 AS UNIT, 6 AS QTY, 3.1*6 AS TOT_ESATTO, ROUND(3.1,0) AS UNIT_ROUND, ROUND(3.1*6,0) AS TOT_ROUND, ROUND(3.1,0)*6 AS ERR

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM