
想要得出这样的结果
SH600000 这只股票 按照时间排序 以后 240行一下 包括240行 每行的字段[n1日均价]等于 向前溯源n个日(含当日)的成交额之和/成交量之和
比如
代码 成交额 成交量 [n1日均价]
SH600000 56456 34534534534
...........
........
..........
.........
.........
..........
如果小于等于240行 不计算 如果大于240行 241 行往下包含241 每一行的 [n1日均价] 都等于 向前溯源240个日(含当日)的成交额之和/成交量之和
存储过程如何写 大侠帮忙写写, 240 和代码 都是个变量
------解决思路----------------------
ALTER PROCEDURE [dbo].[cijunjia]
@CODE VARCHAR(50)--代码
,@DAYCOUNT INT--天数
AS
BEGIN
DECLARE @COUNT INT
SELECT @COUNT=SUM(1)FROM linshi WHERE 代码=@CODE
IF @COUNT<@DAYCOUNT
BEGIN
RETURN
END
;WITH CTE AS(
SELECT ROW_NUMBER()OVER(ORDER BY 时间)RN,* FROM linshi WHERE 代码=@CODE
)
UPDATE A
SET [日均价]=T.[n1次均价]
FROM
CTE A JOIN
(SELECT T1.RN,SUM(CONVERT(float,T2.[成交额(元)]))/SUM(CONVERT(float,T2.[成交量(股)]))[n1次均价]
FROM CTE T1
LEFT JOIN CTE T2 ON T1.RN>=T2.RN AND T1.RN-T2.RN<@DAYCOUNT
WHERE T1.RN>@DAYCOUNT
GROUP BY T1.RN,T1.代码,T1.[成交额(元)],T1.[成交量(股)],T1.时间
)T ON A.RN=T.RN
END
最好是加在红色的那个位置