注册 登录
编程论坛 SQL Server论坛

关于存储过程的问题

aifeng 发布于 2010-12-01 09:32, 429 次点击
将TX_17数值为00001或00005且TX_8数值为'201' 或'219'的多条交易记录合并为1条,将多余的记录删除;同时,将这些记录的交易金额相加并赋值到合并的记录中,将备注信息改为“消费利息”,将yuanshi赋值为空。(TX_17,TX_8,交易金额都是列名)这个怎么实现啊
1 回复
#2
png2010-12-02 22:43
例子 -


CREATE Procedure sp_combine_tx8_n_17 as

if exists(
        select 1 from TableA     
        where TX_8 in ('201', '219') and TX_17 in ('00001', '00005')
        )

BEGIN   
        declare @total money
        select @total = sum(Amount)
        from TableA
        where TX_8 in ('201', '219') and TX_17 in ('00001', '00005')

    Begin tran

        delete TableA
        where TX_8 in ('201', '219') and TX_17 in ('00001', '00005')
        IF (@@Error<>0) GOTO Err_Handling

        insert TableA (TX_8, TX_17, Amount, Comment, Yuanshi)
        values ('201-219', '00001-5', @total, 'intertest', null)
        IF (@@Error<>0) GOTO Err_Handling

    Commit Tran
    Return 0

    Err_Handling:
        Print 'Unexpected Error Occured!'
    Rollback Tran
    Return 1
END

1