如在mysql里面有这样一张表
table a
id value
01 0.99*0.99
02 0.80*0.11a表的value列是字符串格式,怎么才能得到如下结果
id value
01 0.98
02 0.08
也就是将a表的value值拆分后,再计算出结果(截取小数点后两位)。
table a
id value
01 0.99*0.99
02 0.80*0.11a表的value列是字符串格式,怎么才能得到如下结果
id value
01 0.98
02 0.08
也就是将a表的value值拆分后,再计算出结果(截取小数点后两位)。
SELECT MID(value,1,INSTR(value,'*')-1)*
RIGHT(value,INSTR(value,'*')-1) FROM tt
SELECT
X.WO_NBR,X.WO_CLOSE_DATE,X.WO_REL_DATE,X.XXCON_NBR,X.XXCON_DEP,X.XXCON_DATE,X.XXCON_LINE,X.XXCON_PART,
GROUP_CONCAT(X.AVG SEPARATOR "*") AVG FROM
(SELECT WO_NBR,
WO_CLOSE_DATE,
WO_REL_DATE,
XXCON_NBR,
XXCON_DEP,
XXCON_DATE,
XXCON_LINE,
XXCON_OP,
XXCON_PART,
SUM(XXCON_QTY_CHK) CHK,
SUM(XXCON_QTY_REJ) REJ,
truncate(1-SUM(XXCON_QTY_REJ)/SUM(XXCON_QTY_CHK),2) AVG
FROM
(SELECT WO_NBR,WO_CLOSE_DATE,WO_REL_DATE
FROM WO_MSTR
WHERE WO_REL_DATE BETWEEN '2011-02-01' AND '2011-02-28') A, XXCON_DET B
WHERE A.WO_NBR = B.XXCON_CHECKER
GROUP BY XXCON_PART,XXCON_OP
ORDER BY XXCON_PART) X
GROUP BY X.WO_NBR
ORDER BY X.XXCON_PART楼上几位的方法我之前就已经考虑过了,但觉得这样不是很好.
这个查询里面的avg字段就是一楼的value字段。