这个存储过程应该怎么写?

xhp2001 2007-06-14 06:11:29
我现在有两张表,Login和PayFee表;表结构是:
login结构:
ChargeID , CashFee ,SMFee
0001 ,1000, 300
0002 ,2000, 500
0001 , 3000, 0
0003 , 4000, 0
PayFee表结构:
ChargeID , SMFee
0001 , 500
0002 , 300
0003 , 1000
我要进行的操作是:定时对Login表的SMFee字段进行更新,更新的值为+PayFee表中相应的ChargeID的SMFee的值。而Login.CashFee就减PayFee.SMFee 的值!
比如:
ChargeID , CashFee ,SMFee
0001,1000 - 500 ,300 + 500;
0002,2000 - 300 ,500 + 300;
0001,3000 - 500,0 + 500;
0003,4000 - 1000,0 + 1000;
...全文
249 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
knowledge_Is_Life 2008-05-01
  • 打赏
  • 举报
回复
等待牛人来答.
kililisa 2008-03-01
  • 打赏
  • 举报
回复
最好用一个触发器,当在Login 表中CashFee 加分时,同时在 PayFee 表中减分
hxd001_810 2007-06-15
  • 打赏
  • 举报
回复
create table Login(ChargeID varchar(10),CashFee int,SMFee int)
create table PayFee(ChargeID varchar(10),SMFee int)
go
insert Login values('0001',1000,300)
insert Login values('0002',2000,500)
insert Login values('0001',3000,0)
insert Login values('0003',4000,0)
go
insert PayFee values('0001',500)
insert PayFee values('0002',300)
insert PayFee values('0003',1000)
go
update Login
set CashFee = a.CashFee - b.SMFee,SMFee = a.SMFee + b.SMFee
from Login a inner join PayFee b on a.ChargeID = b.ChargeID
go
select * from Login
返回:
ChargeID CashFee SMFee
---------- ----------- -----------
0001 500 800
0002 1700 800
0001 2500 500
0003 3000 1000

(所影响的行数为 4 行)
hellowork 2007-06-14
  • 打赏
  • 举报
回复
select a.ChargeID,
CashFee = (isnull(a.CashFee,0)-isnull(b.SMFee,0)),
SMFee = (isnull(a.SMFee,0) + isnull(b.SMFee,0))
from Login as a left join PayFee as b on a.ChargeID = b.ChargeID

27,580

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧