请教一个删除单条数据的存储过程
表A是单头:id,店名, 日期 , 应收金额, 实收金额
01 001 2004-12-26 10:54:37.000 10 10
02 001 2004-12-26 11:54:37.000 11 10
03 002 2004-12-26 12:54:37.000 12 12
----------------------------------------------------
表B是明细表:
id 商品编码 销售数量 销售价 实收金额
01 1001 1 10 10
02 1002 1 5.5 5.5
02 1003 1 5.5 5.5
03 1004 1 12 12
--------------------------------------------- ----------------
我现在想把商品编码为:1003的删除..然后把表A中的应收金额和实收金额更新成删除后的金额.还要加一个日期条件..日期> dateadd(day,-1,getdate()) 高手请帮忙指点下.. 表A和表B是通过什么关联?是ID吗 写了下 没测试 时间比较急,错误处理请自己搞定
BEGIN TRAN
DECLARE @Var AS VARCHAR(10)
UPDATE A SET 应收金额=应收金额 - 应收金额1,实收金额=实收金额 - 实收金额1
FROM (SELECT [id],SUM(销售数量 * 销售价格) 应收金额1,SUM(实收金额) AS 实收金额1 WHERE 商品编码=@Var GROUP BY [ID]) AS C
WHERE A.[ID]=C.[ID] AND A.日期> dateadd(day,-1,getdate())
DELETE B FROM B INNER JOIN A ON B.[ID]=A.[ID] WHERE A.日期> dateadd(day,-1,getdate()) AND 商品编码=@Var
COMMIT TRAN [quote][bo]以下是引用 [un]happynight[/un] 在 2008-5-12 15:56 的发言:[/bo]
写了下 没测试 时间比较急,错误处理请自己搞定
BEGIN TRAN
DECLARE[color=Magenta] @Var[/color] AS VARCHAR(10)
UPDATE A SET 应收金额=应收金额 - 应收金额1,实收金额=实收金额 - 实收金额1
FROM (SELECT ,SUM(销售数量 ... [/quote]
@Var这个不清楚..因为我要删除的商品编码是有要求的..10003 @Var是一个变量,之所以使用变量,就是为了比较灵活点,因为你要写存储过程的话,目的就是重复使用,使用这个可以用来删除不同的商品而不只是为了一次性的删除10003而下次又要修改程序 多谢..搞定了..
页:
[1]
