Sql 上月至今

Sql 上月至今,sql,Sql,我正在计算上个月到目前为止的销售量 我创建了截至目前的月份,如下所示: sum(case when year(s.bus_dat) = year(getdate()) and month(s.bus_dat) = month(getdate()) then qty_sold end) as MTD_SAL, 我需要以类似的方式创建上个月至今的日期(我希望代码表示从上个月初到今天的日期,因此如果今天是10/28/2018,我需要显示从09/01/2018到10/28/2018 有什么建议吗?计

我正在计算上个月到目前为止的销售量

我创建了截至目前的月份,如下所示:

sum(case when year(s.bus_dat) = year(getdate()) and month(s.bus_dat) = month(getdate()) 
then qty_sold end) as MTD_SAL,
我需要以类似的方式创建上个月至今的日期(我希望代码表示从上个月初到今天的日期,因此如果今天是
10/28/2018
,我需要显示从
09/01/2018
10/28/2018


有什么建议吗?

计算一个月的第一天,然后使用以下公式返回一个月:

dateadd(m,-1,dateadd(d,-day(getdate())+1,getdate()))
需要确保它是一天的开始,因此转换为日期:

convert(date,dateadd(m,-1,dateadd(d,-day(getdate())+1,getdate())))
因此,您的完整列变成:

sum(case when s.bus_dat>=
  convert(date,dateadd(m,-1,dateadd(d,-day(getdate())+1,getdate())))) 
then qty_sold else 0 end) as LM

要在上个月到今天之间获得一些东西,您可以使用:

BETWEEN DATE(CONCAT(YEAR(NOW()),'-',MONTH(NOW()),'-01')) - INTERVAL 1 MONTH AND DATE()

你能想出如何格式化你的代码吗?你所有的问题似乎到处都有
在这里输入代码
。你应该用你的代码替换占位符文本,这样你的代码就可以用固定的字体很好地格式化了。太好了,谢谢@bahagerges。请记住接受答案以结束问题。