在SQL中显示去年的上个月销售额

时间:2015-05-27 17:12:08

标签: sql sql-server

我试图从链接到Excel的数据库运行SQL查询,该数据库将为我提供特定客户的所有销售。我想采取当前的日期,2015年5月27日,看看去年底,即去年4月31日的销售情况。所以将来如果日期是2015年12月6日,我想看到5/31/15。

这是我现在拥有的。

SELECT   CustomerName, 
         SUM(NetSales) AS YTD_Sales
FROM     dbo.AllSales
WHERE    (CustomerClass = 'DLR') 
  AND    (CustomerName IN ('Company 1', 'Company2')) 
  AND    (InvoiceDate BETWEEN '1/1/2015' 
  AND DATEADD(s, - 1, DATEADD(mm, DATEDIFF(m, 0, GETDATE()), 0))) 
  AND (CustomerClass = 'DLR')
  GROUP BY CustomerName

此代码为我提供了截至上个月月底的所有销售额。我觉得我很接近。

1 个答案:

答案 0 :(得分:0)

这个问题很简陋,但如果您现在想要的数据来自2014年1月1日至2014年4月31日,那么您就是这样做的:

SELECT   
    CustomerName, 
    SUM(NetSales) AS YTD_Sales
FROM     
    dbo.AllSales
WHERE    
    CustomerClass = 'DLR' and
    CustomerName IN ('Company 1', 'Company2') and
    InvoiceDate >= DATEADD(year, datediff(year, 0, GETDATE())-1, 0) and
    InvoiceDate < DATEADD(month, datediff(month, 0, GETDATE())-12, 0)
GROUP BY 
    CustomerName

如果是其他内容,您可以调整dateadd中的-12和-1以获得正确的月份。