【发布时间】:2014-03-11 15:58:49
【问题描述】:
样本数据:
groupID CustomerID CustomerAddr work_date work_order
CA123 ABC12345 123 MAIN ST 2/1/2012 WORKNEW
CA123 ABC12345 123 MAIN ST 10/9/2012 ZZZ888
CA123 ABC12345 123 MAIN ST 3/9/2013 ZZZ131
WA999 ZZZ99909 451 EAST ST 1/13/2013 SY1234
WA999 ZZZ99909 451 EAST ST 4/15/2013 WORKOTHER
WA999 ZZZ99909 451 EAST ST 5/17/2013 SY1244
WA999 ZZZ99909 451 EAST ST 12/8/2013 SY1334
CA123 ABD54321 522 AVE A 4/21/2013 WW9999
对于给定的示例数据,我需要计算具有相同 groupID 和 CustomerID 的记录在 6、12 和 18 个月的时间间隔内出现了多少次。该计数应独立于具有相同 groupID 和 customerID 的其他记录。
输出应该是这样的:
groupID CustomerID work_date six_month_count twelve_month_count twenty_four_month_count
CA123 ABC12345 2/1/2012 0 1 2
CA123 ABC12345 10/9/2012 1 1 1
CA123 ABC12345 3/9/2013 0 0 0
WA999 ZZZ99909 1/13/2013 2 3 3
WA999 ZZZ99909 4/15/2013 1 2 2
WA999 ZZZ99909 5/17/2013 0 1 1
WA999 ZZZ99909 12/8/2013 0 0 0
CA123 ABD54321 4/21/2013 0 0 0
我唯一能想到的就是获取每行的当前记录和最大记录,但我不知道如何计算给定范围的记录。
任何帮助将不胜感激。
【问题讨论】:
-
如何定义 6、12 和 18 个月的间隔?
标签: sql-server tsql sql-server-2008-r2