2012-02-08 79 views
0


我正在寻找解决以下问题的方法:
我写了一个为期30天的文件,每天产生一次计数。
如何显示仅高于或低于30天平均值的10%的数据?

SELECT reuseid, hexample, hTimeframe, irodger, dateandtime 
From reusing.reuse 
WHERE hexample= 'RDM Daddy' 
     and hTimeframe= 'TSBC0002.dlt.*.dat' 
     and ((GETDATE()-dateandtime) < 32.0) 
     and irodger<>(SELECT AVG(irodger) FROM reusing.reuse) 
ORDER by dateandtime desc 

我需要取过去30天的平均值。然后,如果当天的金额为+/- 10%(1.1/ .9),则需要产生错误...... ......

此当前查询生成过去30天的数据,告诉我什么是高于或低于目前的平均水平,但不是介于两者之间。

任何帮助,非常感谢!

回答

0

也许这种操作可以解决你的问题:

SELECT reuseid, hexample, hTimeframe, irodger, dateandtime 
From reusing.reuse 
WHERE hexample= 'RDM Daddy' 
     and hTimeframe= 'TSBC0002.dlt.*.dat' 
     and ((GETDATE()-dateandtime) < 32.0) 
     -- Here : 
     and (irodger/(SELECT AVG(irodger) FROM reusing.reuse)) NOT BETWEEN 0.9 AND 1.1 
ORDER by dateandtime desc 
+0

谢谢斯坦! SQL似乎很完美,但似乎并没有限制任何结果....任何进一步的想法? – TempleTerraceHQ 2012-02-08 20:31:19

+0

更正 - 此查询将使用“NOT BETWEEN”而不受任何限制地运行,但是当我使用BETWEEN满足任何需求时,我不会显示任何结果。它可以是涵盖所有数据范围的blatent数字,但仍然没有数据出现.... – TempleTerraceHQ 2012-02-08 21:08:12

相关问题