2013-09-24 52 views
2

在我的SQL Server上我有一個包含大量數據的表格。年份(smallint)和月份(tinyint)有兩列。從不同顏色的年份和月份中選擇最近X月份的數據

什麼是分離過去X月份數據的最好和最實用的方法。

我已經聲明的變量

  • @YearFrom
  • @YearTo
  • @MonthFrom
  • @MonthTo

用正確的值。現在,我已經意識到,作爲我的預期WHERE語句不起作用:

WHERE (year >= @yearfrom AND month >= @monthfrom) 
AND (year <= @yearto AND month <= @monthto) 

因爲從過去的12個月選擇數據的時候,我的變量是

  • @YearFrom = 2012
  • @ YearTo = 2013
  • @MonthFrom = 9
  • @MonthTo = 9
從09 2012/2013

WHERE (year >= 2012 AND month >= 9) 
AND (year <= 2013 AND month <= 9) 

所以10點

和SELECT只想給我的數據,實際上有兩個possiblities來解決這個問題:

  • 先用變量X上個月@lastMonth = 12
  • 或與我已經聲明的4個助手varibales(yearfrom,yearto,monthfrom,monthto)。

任何建議如何解決這個問題?!?!?

感謝您的回覆...

回答

1
WHERE (year = @yearfrom AND month >= @monthfrom or year > @yearfrom) 
AND (year = @yearto AND month <= @monthto or year < @yearto)