【发布时间】:2011-05-18 10:08:24
【问题描述】:
我正在努力在 SQL 中重新创建可以在 Excel 中执行的特定计算。它涉及平均值。
我们收集多年的数据。我们创建的一张表是三年平均值。以下表格显示:1) RAW 数据,以及 2) 包含 AVERAGE 数据的新表格。 “维度”是 [年份] 和 [项目代码]。
平均数据基于一年数据的平均值,两边均为 2 年。即 1991 年平均数字 = 平均 (1990,1991,1992)。 =平均(B2:D2)
2) 平均
alt text http://tinypic.com/images/404.gif
在 Excel 中,这似乎很简单:一个平均公式,然后拖到其他单元格中,或者在 VBA 中使用 R1C1 引用。
但是在 SQL 中它是什么? 你怎么说使用“今年”和前年和后年的数据?
另外,我意识到如果有一个空单元格它会抛出我的计算,那么你如何管理 NULL 值以便它只在有三个数字要使用时计算?......然后再做一遍直到完成(很多年,很多很多的ItemCodes)
任何帮助将不胜感激。
【问题讨论】:
-
您使用的是什么 SQL 数据库?到目前为止,您提出了哪些疑问,它们有什么问题?可以发一下代码吗?
-
还有,数据库的格式是什么?
-
分享您尝试过的查询!
-
数据库是公司定制的数据库,对后端(计算)的访问有限。它有一些预定义的函数:求和、平均等,我们可以在其中使用参数。
-
我还没有尝试任何复杂的计算,所以我没有任何东西可以展示。我们目前正在使用它来执行以下操作:(Arg1/Arg2)*100;或 IF 'ItemCode' in ('A123', 'B123') THEN (Arg1 + Arg3) / Arg2 * 100 ELSE Arg1 / Arg2 * 100。目前相当基本的东西,因此我请求关于如何更复杂的查询的建议会看。谢谢。