图书管理系统中写入下面语句:
UPDATE s SET s.amount = s.amount - sbb.subtractMoney 
FROM Student s, Student_Book_borrowed sbb
WHERE sbb.status = '过期' AND sbb.Studentid = s.id意思是:根据图书记录Student_Book_borrowed中的欠费信息,修改学生Student的欠费信息但是当同一个人借阅多本书时,即Student_Book_borrowed表中多个相同的Studentid 时,UPDATE只执行了其中的第一条,其他的貌似自动过滤了,请问大家怎么解决啊,在线等,谢谢了

解决方案 »

  1.   

    UPDATE s SET s.amount = s.amount - sbb.subtractMoney  
    FROM Student s, (select Studentid,
                            sum(subtractMoney)subtractMoney
                     from Student_Book_borrowed 
                     group by Studentid)sbb
    WHERE sbb.status = '过期' AND sbb.Studentid = s.id
      

  2.   

    你要想什么效果,把sbb中的subtractmoney字段的和放到s.amount里?
      

  3.   


    sbb中具有相同Bookid的subtractmoney字段的和放到s.amount里
      

  4.   

    --修改下
    UPDATE s SET s.amount = s.amount - sbb.subtractMoney  
    FROM Student s, (select Studentid,
                            sum(subtractMoney)subtractMoney
                     from Student_Book_borrowed
                     WHERE sbb.status = '过期' 
                     group by Studentid)sbb
     where sbb.Studentid = s.id
      

  5.   

    标题: 分析命令文本
    ------------------------------在命令文本中检测到以下错误。------------------------------
    其他信息:执行 Transact-SQL 语句或批处理时发生了异常。 (Microsoft.SqlServer.ConnectionInfo)------------------------------无法绑定由多个部分组成的标识符 "sbb.status"。 (Microsoft SQL Server,错误: 4104)有关帮助信息,请单击: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=10.00.1600&EvtSrc=MSSQLServer&EvtID=4104&LinkId=20476------------------------------
    按钮:确定
    ------------------------------
      

  6.   


    --继续修改下
    UPDATE s SET s.amount = s.amount - sbb.subtractMoney  
    FROM Student s, (select Studentid,
                            sum(subtractMoney)subtractMoney
                     from Student_Book_borrowed
                     WHERE status = '过期' 
                     group by Studentid)sbb
     where sbb.Studentid = s.id