日期:2014-05-18  浏览次数:20626 次

SQL问题``请哪位大吓帮帮忙啊``急
已知有A,B列求C列,如下: 
A,B,C 
5,7,C1=A1+B1 
3,15 C2=C1+A2+B2 
9,24 C3=C2+A3+B3 
.. .. 
要生成C这一列,求解(只能用标准SQL99语句实现)用一句SQL完成(可以复合或嵌套语句来完成) 
不能用其他的指针或者循环语句的方式,因为题目的要求是对象的整体进行一次性的运算而不是一次次对其分量做运算`

------解决方案--------------------
又见此贴,帮顶
------解决方案--------------------
帮顶
------解决方案--------------------
C=A+B + 用户函数(当前列ID)

CREATE FUNCTION 用户函数 (@ID int)
RETURNS int
AS
BEGIN
DECLARE @C int
select top 1 @C=C from [table]
where id < @ID

RETURN(@C)
END

------解决方案--------------------
c_n=(select sum([A])+sum([B])from [tab] where [c]<=C_n)

我看C的值就是小于等于该行记录的所有A和B的值的和。不晓得对不对?

------解决方案--------------------
rollup函数