首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SQL滚动总计到某一特定日期

SQL滚动总计到某一特定日期
EN

Stack Overflow用户
提问于 2013-03-25 18:50:39
回答 2查看 317关注 0票数 1

我有两张桌子在工作。让我们称他们为“顾客”和“点”。

Point表如下所示:

代码语言:javascript
运行
复制
Account Year M01 M02 M03 M04 M05 M06 M07 M08 M09 M10 M11 M12
123     2011  10   0   0   0  10   0  10   0   0   0   0  10
123     2012   0   0   0   0  10   0   0  10  10  10  10  20
123     2013   5   0   0   0   0   0   0   0   0   0   0   0

但这些观点在12个月的滚动过程中起作用。计算当前客户的观点非常简单,但挑战在于那些不再活跃的客户。假设客户123在2013年1月变得不活跃,我们只想计算2月12日-1月13日。这就是另一个表Customers进来的地方,让我们简化一下,它看起来就像这样:

代码语言:javascript
运行
复制
Account   End Date
123       20130105

现在,我要做的是创建一个查询来计算每个客户的点数。(目前的12个月是活跃的客户,过去的12个月是为那些不再活跃的客户服务的。)

以下是更多信息:

  • 我正在运行Server 2008。
  • 这些表是这样提供给我的,我不能修改它们。
  • 主动客户是指终止日期为99991231 (12月31日9999)的人。
  • points只填充客户是活动客户的年份。也就是说,有人在2009年2月成为活跃的客户,他们有一个2009年的条目,如果他们在2009年7月变得不活跃,他们的分数只是计算2009年2月-7月,2008年没有排,因为他们不是当时的客户。2009年1月和8月至12月将显示0分.
  • 此外,只有当客户获得该年的任何分数时,才会创建记录。如果一个客户在一年中得到0分,就不会有任何记录。
  • 对于边境案件,如果你进入一个月的第一天,那就算上那个月。例如,假设今天是2013年4月1日,这意味着我们总结了5月12日至4月13日。

这是一个相当复杂的问题。如果有什么我能解释得更好的请告诉我。谢谢!

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15622474

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档