确定连续几个月

时间:2015-05-11 20:06:47

标签: sql-server common-table-expression

我一直在使用您在2010年发布的答案来了解如何使用CTE来识别SQL中连续几个月的订单。我终于把头脑包裹在这个查询的大部分内容中,但是不了解最后几行,以及为什么选择你所做的日期。

TSQL Finding Order that occurred in 3 consecutive months

  

WHERE     存在(        选择1        从           锚A        哪里           O.CustID = A.CustID           AND O.OrderDate> = DateAdd(月,A.Ind,'19991201')           和O.OrderDate< DateAdd(月,A.Ind,'20000301')

为什么选择19991201和20000301的日期?

非常感谢。我希望你有机会回应。理解这一点将为我开启一个全新的理解层。

迈克尔

1 个答案:

答案 0 :(得分:0)

19991201和20000301是YYYYMMDD格式的日期,而where子句使用MONTH。

所以,如果你需要连续3个月你会得到你写的where子句的Dec / 99,Jan / 2000和Feb / 2000。