Mysql 在SQL查询中将列设置为第100个十二月
我这里有一个差异报告查询,我需要“差异”在差异列中不包含10个小数点。将方差结果四舍五入到第100位最方便的方法是什么Mysql 在SQL查询中将列设置为第100个十二月,mysql,sql,decimal,Mysql,Sql,Decimal,我这里有一个差异报告查询,我需要“差异”在差异列中不包含10个小数点。将方差结果四舍五入到第100位最方便的方法是什么 WITH A AS ( select A.FACTORY, A.JOB_NUMBER, A.PROCESS_STAGE, A.PART_CODE, B.PART_DESC_1, A.INPUT_QTY_STD, A.QUANTITY_INPUT, A.QUANTITY_OUTSTANDING, A.INPUT_QTY_ACTUAL, (A.QUANTITY_OUTSTANDIN
WITH A AS
(
select
A.FACTORY,
A.JOB_NUMBER,
A.PROCESS_STAGE,
A.PART_CODE,
B.PART_DESC_1,
A.INPUT_QTY_STD,
A.QUANTITY_INPUT,
A.QUANTITY_OUTSTANDING,
A.INPUT_QTY_ACTUAL,
(A.QUANTITY_OUTSTANDING*100/NULLIF(A.INPUT_QTY_STD,0)) as variance,
A.ACTUAL_CLOSE_DATE
from
(select * from [man_prod].[dbo].[JOB_STAGE_LINES]
where JOB_NUMBER in (select JOB_NUMBER from JOB_OUTPUTS where
BF_QTY_ACTUAL<>0
and ABS(DATEDIFF(HOUR,ACTUAL_CLOSE_DATE,GETDATE())) < 12 and STATUS_FLAG='C'
)) A
join fin_prod.dbo.PRODUCT_MASTER B
ON A.PART_CODE=B.PART_CODE
WHERE
A.INPUT_QTY_STD<>0 and
A.QUANTITY_OUTSTANDING <>0
)
SELECT * FROM A WHERE A.variance >10.000000 OR A.variance <-10
order by PROCESS_STAGE asc ,PART_CODE asc, variance desc ;
方差列显示为00.0000000000,我需要它显示00.000或00.000000
非常感谢您的帮助使用MySQL函数,如果是正数,则第二个参数是小数位数
ROUND((A.QUANTITY_OUTSTANDING*100/NULLIF(A.INPUT_QTY_STD,0)), 3) as variance,
在本例中,如果值为0.0000000000,则将四舍五入到小数点后3位或0.000。您可以使用以下选项:
或者,如果您正在寻找doublesharp建议的圆形,请使用圆形
ROUND((A.QUANTITY_OUTSTANDING*100/NULLIF(A.INPUT_QTY_STD,0)), 3) as variance,
当我不实际舍入值时,我更喜欢使用将其转换为所需长度的小数,而只是格式化
CONVERT(DECIMAL(10,3),10000)
问题要求四舍五入而不是截断。这将放在查询中的何处以影响差异格式?CONVERTDECIMAL10,3,A.来自A的差异,其中A.差异>10.000000或A.差异
CONVERT(DECIMAL(10,3),10000)