求大神告诉一下这个SQL语句怎么写

qq_20527767 2014-09-14 10:55:08
建两张表,一张账号信息表,账号,姓名,钱,第二张表交易信息表,姓名,交易的账号1,交易的账号2,交易的金额,时间,交易状态,0正常,1,异常。写一个存储过程,传三个信息。两个账号的信息,转多少钱。余额不够,抛出异常。调用事物,如果成功,在账号信息表存一条数据,如果失败的话,也要在交易信息表里存入信息
...全文
191 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_20527767 2014-09-15
  • 打赏
  • 举报
回复
这个用SQL Server怎么做?
xiaodongni 2014-09-15
  • 打赏
  • 举报
回复
引用 7 楼 qq_20527767 的回复:
这个用SQL Server怎么做?
我上面不就是SQL server吗
唐诗三百首 2014-09-14
  • 打赏
  • 举报
回复
"如果成功,在账号信息表存一条数据" --> 请问存一条怎样的记录? 是新增还是更新? 最后提供测试数据和希望结果.
xiaodongni 2014-09-14
  • 打赏
  • 举报
回复

--测试数据
create table a (cno char(4),name varchar(10), price decimal(8,2))
insert into a values 
(1001,'张三',100.00),
(1002,'李四',18.00),
(1003,'王五',10.00),
(1004,'赵六',100.00)

create table b (sno int identity(1,1),cno1 char(4),cno2 char(4),price decimal(8,2),statu int ,gendate datetime)
--表B 里面钱从CNO1转到CNO2.
--存储过程代码
 create proc test 
  @cno1 char(4),@cno2 char(4),@price  decimal(8,2) 
  
  as 
  begin tran 
  declare @price_cno1  decimal(8,2),@nowdate datetime=getdate()
  select @price_cno1=price  from A
  where cno=@cno1
  if @price_cno1<@price
  begin 
   insert into b values (@cno1,@cno2,@price,1,@nowdate)
    print '余额不足,请重新确认!'
   return
   end 
   else 
   begin 
   insert into b values (@cno1,@cno2,@price,0,@nowdate)
   end 
   commit
 --2次调用  
exec test '1001','1002',110.00
exec test '1001','1002',80.00
--实际用插入成功了 还需要修改A表信息。

jayzhihui 2014-09-14
  • 打赏
  • 举报
回复
如何确定余额是不是够????逻辑是不是有问题
qq_20527767 2014-09-14
  • 打赏
  • 举报
回复
第一个表账户信息表 id 姓名 钱 第二个表 交易信息表 id 交易的账户 交易的金额 交易状态(0正常1异常2金额不够) 时间 功能,传3个参数进去,两个账户的信息 从谁到谁 还有钱数 余额不够的时候抛出异常,(调用事物) 成功在账户信息表中村一个数据 如果失败的话(1.事物出)
reenjie 2014-09-14
  • 打赏
  • 举报
回复
你的需求描述是不是有误啊? 如果交易帐号1的余额小于交易的金额,则帐号信息表中的数据不变,交易信息表中新增一条数据且交易状态为“1”; 如果交易帐号1的余额大于或等于交易的金额,则帐号信息表中的两个帐号的数据要更新,交易帐号1的钱=原钱数-交易的金额,而交易帐号2的钱=原钱数+交易金额,另交易信息表中新增一条数据且交易状态为“0”。 建议提供一些测试数据及希望得到的结果。这样可以更好的理解你的需求。
qq_20527767 2014-09-14
  • 打赏
  • 举报
回复
要新增的,这个要用存储过程写

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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