首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

Sql Server 怎样一个月一个月的加到当前月,如何判断是否到了当前月?详细见下

2013-03-26 
Sql Server 怎样一个月一个月的加到当前月,怎么判断是否到了当前月?详细见下:是这样子,我要统计一下发票本

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

热点排行