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

怎樣在已知月的基礎上查上月的記錄,是不是這樣的解决办法

2012-03-14 
怎樣在已知月的基礎上查上月的記錄,是不是這樣的SELECT*,CAST(CAST(sum1/sum2*100ASdecimal(10,2))ASvarch

怎樣在已知月的基礎上查上月的記錄,是不是這樣的
SELECT                   *,   CAST(CAST(sum1   /   sum2   *   100   AS   decimal(10,   2))   AS   varchar(10))  
                                                    +   '% '   AS   sum12
FROM                           (SELECT                   *
                                                      FROM                             (SELECT                   SUM(subqty)   AS   sum1
                                                                                                              FROM                             dbo.suboqa
                                                                                                              WHERE                     checkdate   > =   @starttime   AND  
                                                                                                                                                                    checkdate   <=   @endtime   AND   resultd   =   1)   a   JOIN
                                                                                                                    (SELECT                   SUM(subqty)   AS   sum2
                                                                                                                        FROM                             dbo.suboqa


                                                                                                                        WHERE                     checkdate   > =   @starttime   AND  
                                                                                                                                                                              checkdate   <=   @endtime)   b   ON   1   =   1)   c
UNION   ALL
(SELECT                   *,   CAST(CAST(sum1   /   sum2   *   100   AS   decimal(10,   2))   AS   varchar(10))  
                                                        +   '% '   AS   sum12
  FROM                           (SELECT                   *
                                                        FROM                             (SELECT                   SUM(subqty)   AS   sum1
                                                                                                                FROM                             dbo.suboqa
                                                                                                                WHERE                     checkdate   > =   dateadd(day,   -   30,   @starttime)   AND  
                                                                                                                                                                      checkdate   <=   dateadd(day,   -   30,   @endtime)   AND  


                                                                                                                                                                      resultd   =   1)   a   JOIN
                                                                                                                      (SELECT                   SUM(subqty)   AS   sum2
                                                                                                                          FROM                             dbo.suboqa
                                                                                                                          WHERE                     checkdate   > =   dateadd(day,   -   30,   @starttime)   AND  
                                                                                                                                                                                checkdate   <=   dateadd(day,   -   30,   @endtime))   b   ON  
                                                                                                              1   =   1)   c)


                                                                                                                     





[解决办法]
create proc test_p @year int,@month int
as
declare @dt datetime
set @dt=rtrim(@year)+right(100+@month-1,2)+ '01 '
select * from 表名
where 时间列 between CONVERT(datetime,CONVERT(char(8),@dt,120)+ '1 ') and
DATEADD(Day,-1,CONVERT(char(8),DATEADD(Month,1,@dt),120)+ '1 ')+ ' 23:59:59 '

热点排行