查询以获得彼此2%的前置和后置值?

时间:2013-10-10 17:34:27

标签: mysql

我有体脂预测和后测的数据。如果后测试值大于预测试,则它只能大2%或者我不希望它在结果中。后测试值可以是低于预测试的任何量。

此查询仅在两个值均在彼此的2%范围内时才有效。缺失的部分是后期测试低于预测试。任何帮助将不胜感激!

SELECT LPAD( `studid` , 7, '0' ) AS studid, 
       bodpoints, 
       STR_TO_DATE(TestDate, '%m/%d/%Y') AS testd 
FROM bodpod, points 
WHERE ABS((post - pre) / pre) <= '0.02' 
AND ID2 = 'fall' 
AND studid != '' 
GROUP BY studid 
HAVING COUNT( DISTINCT ID1 ) >=1 AND YEAR( testd ) = '2013' 

1 个答案:

答案 0 :(得分:0)

如果您将ABS((post - pre) / pre) <= '0.02'更改为((post - pre) / pre) <= 0.02,您应该得到所需的答案。

通过删除ABS,我们可以检查任一方向的变化。通过检查小于0.02的变化,我们确保变化不超过2%(如果变化减少,我们将得到负数,因此仍然会通过检查。)

编辑抱歉,我想我的答案是从前面回来的!