SQL Server 2005:查找/访问(currentrow-N)的值&;实施一个公式?
我有一个包含四列(年、月、名称和值)的表 我想添加另一列(新的_值),该列由以下公式计算 新值=(当前月份的值/当前月份的值-4))^1/3 范例SQL Server 2005:查找/访问(currentrow-N)的值&;实施一个公式?,sql,sql-server-2005,Sql,Sql Server 2005,我有一个包含四列(年、月、名称和值)的表 我想添加另一列(新的_值),该列由以下公式计算 新值=(当前月份的值/当前月份的值-4))^1/3 范例 Year Month NAME VALUE NEW_VALUE 2008 01 A 4.412 ? 2008 02 B 4.941 2008 03 C 4.815 2008 04 D 4.246 200
Year Month NAME VALUE NEW_VALUE
2008 01 A 4.412 ?
2008 02 B 4.941
2008 03 C 4.815
2008 04 D 4.246
2008 05 E 4.100
2008 06 F 4.490
2008 07 G 4.465
2008 08 H 4.636
2008 09 I 4.045
2008 10 J 5.543
2008 11 K 5.722
2008 12 L 5.326
e、 g:08月份
新值=(4.636/4.246)^1/3
忽略前四个月的计算
如何在SQL中以编程方式获取“currentMonth-4”值
谢谢只需在该月将表自身加入(可能还有其他列,我不知道您的数据)
类似于@tetra中子:
SELECT tb.Name, tb.Value, POWER(tb.value / ta.value, .3333) AS NewValue
FROM
yourtable ta,
yourtable tb
WHERE
(tb.month>4 AND ta.month=tb.month-4 AND tb.year=ta.year)
OR (tb.month<=4 AND ta.month=(8+tb.month) AND tb.year=(ta.year+1))
选择tb.Name、tb.Value、POWER(tb.Value/ta.Value.3333)作为新值
从…起
你的桌子,
你的表肺结核
哪里
(tb.month>4,ta.month=tb.month-4,tb.year=ta.year)
或者(tb.Month)从问题“忽略前四个月的计算”开始,这将失败1-4个月
SELECT tb.Name, tb.Value, POWER(tb.value / ta.value, .3333) AS NewValue
FROM
yourtable ta,
yourtable tb
WHERE
(tb.month>4 AND ta.month=tb.month-4 AND tb.year=ta.year)
OR (tb.month<=4 AND ta.month=(8+tb.month) AND tb.year=(ta.year+1))