none
求助存储过程编程 RRS feed

  • 问题

  • 求助:在MS SQL2005数据库中有一个表【耗材更换记录】,记录着打印机的耗材更换情况,表结构及数据如下:
    编号 日期          打印机编号 换下耗材编号 换上耗材编号 打印机计数器
    1    2011-1-1   P1            T1                T2               100
    2    2011-1-2   P1            T2                T3               300
    3    2011-1-3   P1            T3                T4               400
    4    2011-1-4   P1            T4                T2               500
    5    2011-1-5   P1            T2                T5               600
    问题:怎样编写存储过程,根据以上记录,计算出任意一个耗材的打印量?
    比如编号为T2的耗材,其打印量为(300-100)+(600-500)=300

    2011年11月25日 1:48

答案

  • CREATE PROCEDURE 【耗材更换记录PROC】
    (
           @耗材编号             int
    )
    AS
    
    DECLARE @耗材总数 int
    SET @耗材总数 = 
    (SELECT SUM(打印机计数器)
      FROM 【耗材更换记录】
      WHERE 换下耗材编号 = @耗材编号
      GROUP BY 换下耗材编号)
    
    SET @耗材总数 + =
    (SELECT SUM(打印机计数器) * -1
      FROM 【耗材更换记录】
      WHERE 换上耗材编号 = @耗材编号
      GROUP BY  换上耗材编号)
    
    PRINT @耗材总数
    GO
    

    Alvin
    2011年11月25日 9:40