没有临时表的滚动时间范围

时间:2015-02-20 21:30:46

标签: date sql-server-2012 sql-server-2000

我需要在12个月的滚动时间内扣除销售总额,但我的DBA没有给我制作临时表的权利,所以我不能使用像我在网上看到的几个帖子中看到的那样。此外,我发现的大部分内容都是指使用SQL 2012.我必须访问的一些服务器是SQL 2000,有些是SQL 2012,我需要这两项工作。这是一些示例代码:

Select Rep
,Rep_ID
,Cast(Case when Sales_Date between '2/1/2014' and '1/31/2015' then Sum(Sales) else 0 end as decimal(18,2)) as "Sales Amount"

From dbo.Sales

1 个答案:

答案 0 :(得分:1)

所以,您是否在过去12个月内试图获得每位代表的销售额?

SELECT Rep
    ,Rep_ID
    ,"Sales Amount" = Sum(Sales)
FROM dbo.Sales
WHERE Sales_Date
    BETWEEN DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()) -12, 0) 
        AND DATEADD(SECOND, -1, DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()), 0))
GROUP BY Rep, Rep_ID

编辑:略有错误修正,日期之间现在是2014-02-01 00:00:00.000 AND 2015-01-31 23:59:59.000