急!SQL SERVER 查询的问题(高手请进!!!)

来源:百度知道 编辑:UC知道 时间:2024/07/04 18:58:59
表格如下
CARDCODE LINEMEMO JFJE DFJE
A客户 期初 100.00 0.00
A客户 应收 200.00 0.00
A客户 应收 300.00 0.00
A客户 收款 0.00 500.00

要求做到下面的查询结果

CARDCODE LINEMEMO JFJE DFJE YE
A客户 期初 100.00 0.00 100.00
A客户 应收 200.00 0.00 300.00
A客户 应收 300.00 0.00 600.00
A客户 收款 0.00 500.00 100.00
表格如下
CARDCODE LINEMEMO JFJE DFJE
A客户 期初 100.00 0.00
A客户 应收 200.00 0.00
A客户 应收 300.00 0.00
A客户 收款 0.00 500.00

能否用SELET做到下面的查询结果

CARDCODE LINEMEMO JFJE DFJE YE
A客户 期初 100.00 0.00 100.00
A客户 应收 200.00 0.00 300.00
A客户 应收 300.00 0.00 600.00
A客户 收款 0.00 500.00 100.00

CARDCODE--客户 LINEMEMO--行类型 JFJE--应收金额 DFJE--收款金额 YE --余额
我要每一笔交易之后的余额

可用存储过程实现:

————————————————————————
DECLARE @QCJE MONEY;
DECLARE @YE MONEY;
DECLARE @CARDCODE VARCHAR(50);
DECLARE @LINEMEMO VARCHAR(50);
DECLARE @JFJE MONEY;
DECLARE @DFJE MONEY;
DECLARE @COUNT MONEY;

SELECT CARDCODE, LINEMEMO, JFJE, DFJE,(JFJE - DFJE) AS YE
INTO #TEMP
FROM JF
WHERE LINEMEMO<>'期初'

SELECT @QCJE=(JFJE - DFJE)
FROM JF
WHERE LINEMEMO='期初'

SELECT CARDCODE, LINEMEMO, JFJE, DFJE,(JFJE - DFJE) AS YE
INTO #TEMP_OUT
FROM JF
WHERE LINEMEMO='期初'

DECLARE this_cursor CURSOR FOR
SELECT CARDCODE, LINEMEMO, JFJE, DFJE,YE FROM #TEMP

OPEN this_cursor

FETCH NEXT FROM this_cursor INTO @CARDCODE,@LINEMEMO, @JFJE, @DFJE,@YE

SELECT @YE=@QCJE+@YE
SELECT @COUNT=0.00

WHILE @@FETCH_STATUS = 0
BEGIN
SELECT @YE=@YE+@COUNT
INSERT #TEMP_OUT VALUES (@CARDCODE,@LI