我在计数数据使用此查询时遇到问题:
SELECT A.*,
COUNT( B.Serial_number ) AS Qty_insp,
CONCAT(ROUND(A.`Reject_qty`/ COUNT(B.Serial_number)*100, 2),'%') AS NG_Ratio
FROM oqc_defect A
LEFT JOIN inspection_report B ON A.Model = B.Model
AND A.Line = B.Line
GROUP BY A.Problem_date
我得到的结果是NG_Ratio的加密代码,如:3532e ...... 为什么会发生这种问题?
Reject_qty Qty_insp NG_Ratio
2 20 10%
答案 0 :(得分:0)
为什么会发生这种情况:可能它会输出指数格式的数字,例如3532e-2
等同于35.32
。
由于你切断了e
的输出,这有点难以辨别,就像它变得有趣一样: - )
我认为cast() with decimal format
可以将其转换为所需的格式,或者尝试:
ROUND (A.`Reject_qty` * 100) / COUNT (B.Serial_number), 2)
(我没有测试过,它可能无效)。
答案 1 :(得分:0)
CONCAT(CAST(ROUND(A.`Reject_qty`/ COUNT(B.Serial_number)*100, 2) AS CHAR),'%') AS NG_Ratio