日期:2014-05-17  浏览次数:20472 次

Sql Server 怎样一个月一个月的加到当前月,怎么判断是否到了当前月?详细见下:
是这样子,我要统计一下发票本使用的总张数,规则如下:每本发票本有PerPage张,但是并不是每次都用完,有可能只用了几张就换下一个本了,一个月换一本(这里可以确定一月换一本),发票起号(第一个月第一本第一张编号为FrPage),发票最后使用的编号为LastPage,月份2012 01 、2012 02 、2102 03 、2012 04、2012 05.....那么每一个月的使用张数就是:LastPage - (LastPage/PerPage)*PerPage
析:(最后使用编号 - (最后使用编号除以第一个编号取余,即为使用了多少本)*每本多少张)即为该月份这一本使用了的张数,那么把所有月份加起来就可以了,就得出总使用张数了:
Declare @tempPage int 
  @tempPage = LastPage - (LastPage/PerPage)*PerPage

则为:
      select @tempPage1 = LastPage - (LastPage/PerPage)*PerPage 
     from R 
     where Month = '01'
     
     select @tempPage2 = LastPage - (LastPage/PerPage)*PerPage 
     from R 
     where Month = '02'
     
     select @tempPage3 = LastPage - (LastPage/PerPage)*PerPage 
     from R 
     where Month = '03'

    @tempPage = @tempPage1+@tempPage2+@tempPage3+...


疑问:我怎么从数据库中存储的Month字段得知它的最后一个值啊?因为只有知道Month最后一个值才能知道加多少啊。。。。 
------解决方案--------------------
--1、month最大项可以使用 
select year,max(month) from R group by year 
--来获取
--2、
DECLARE @per INT
SELECT  @per = CASE WHEN age IN ( 20, 21 ) THEN 1
                    WHEN age IN ( 22, 23 ) THEN 2
                    WHEN age IN ( 24, 25 ) THEN 3
                    ELSE '数据错误'
               END
FROM    R