首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >累计付款中断SQL Server 2008 -修订版

累计付款中断SQL Server 2008 -修订版
EN

Stack Overflow用户
提问于 2015-02-26 17:29:06
回答 2查看 26关注 0票数 0

删除了我最初的问题,因为不确定它是明确的,并决定新的方法可能是最好的前进方式。

我有一个表,里面有我们收到的付款的详细信息。我们称之为tblPayments,它有一个类似于(example)的设置

代码语言:javascript
复制
DatePayment | AccountNo | value | TransactionNo
26/05/2014  | 123456    | 5.99  | 5845878987
26/06/2014  | 123456    | 5.99  | 5845879585

我的任务是在累积的基础上创建一份破损报告,标准是2次付款被遗漏,它被归类为破损。

示例:账号123456每月支付5.99%。他在2014年6月付款,但随后在7月或8月没有付款,这使这成为8月的破损,直到12月才继续付款,这意味着直到12月才累计破损。

我之前用来计算破坏的查询是使用一条EXCEPT语句完成的,该语句在不需要累积数据的情况下执行所需的操作。我会发布我使用的查询,但它很长,并且之前有其逻辑被理解的问题。因此,展望未来,想一想一种新的、更智能的方式来获取数据。

期望的输出将是:

代码语言:javascript
复制
MonthBreakage | AccountNo | BreakageValue
01-Aug-2014   | 123456    | 5.99
01-Sep-2014   | 123456    | 5.99
01-Oct-2014   | 123456    | 5.99
01-Nov-2014   | 123456    | 5.99
01-Dec-2014   | NULL      | NULL

空值只是为了突出显示记录不再是一种破坏。

任何问题请让我知道,我希望我已经足够清楚/

EN

回答 2

Stack Overflow用户

发布于 2015-02-26 19:27:31

我不能给你一个完整的答案,但我没有时间了,所以这是我到目前为止所知道的:

代码语言:javascript
复制
with months as (
  select 1 as mkey 
  union 
  select 2 
  union 
  select 3 
  union
  select 4 
  union
  select 5 
  union
  select 6 
  union
  select 7 
  union
  select 8 
  union
  select 9 
  union
  select 10 
  union
  select 11 
  union
  select 12 
  )
select mkey, cast('2014-'+cast(mkey as varchar)+'-01' as date) as MonthBreakage, p.*
from months left outer join tblPayments as p on mkey = month(DatePayment)
where mkey > (select max(month(DatePayment)) from tblPayments)

你可以在working in a fiddle here上看到它。希望这能有所帮助。

票数 0
EN

Stack Overflow用户

发布于 2015-02-27 00:52:28

我只是对@Turophile给出的答案做了两周中的一次。

由于联合必须排序和挑选重复项(即使没有任何重复项,也必须检查),因此在cte月份中使用联合all而不是联合

或者..。返工月数为

代码语言:javascript
复制
    with months as (
        select 1 as mkey 
        union all
        select mkey + 1
        from months
        where mkey < 12
    )
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28738664

复制
相关文章

相似问题

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