【问题标题】:Aggregating Sum for two years in SQL在 SQL 中汇总两年的总和
【发布时间】:2020-03-12 19:04:22
【问题描述】:

此表包含保单编号、日期和在该日期支付的保费:

Policy No   Date       Premium 
-------------------------------
ABC         1-Jan-20    $100 
ABC         1-Feb-19    $343 
XYZ         4-Aug-17     $78 
XYZ         3-Sep-15     $56 
XYZ        19-Feb-19     $98 
.         .  
.         .  
.         .  

我们需要找到在给定日期为过去两年支付的保单不明智,日期明智的保费。

样本输出:

Policy No    Date         Premium 
 -------------------------------
ABC         1-Jan-20      $443
ABC         1-Feb-19      $343 
XYZ         4-Aug-17      $134 
XYZ         3-Sep-15      $56 
XYZ         19-Feb-19     $232
.            .            .
.            .

【问题讨论】:

  • 这是一个滚动的 2 年窗口,还是基于当前日期的过去两年内的所有内容,或者完全是其他什么?
  • 您已经告诉我们您需要什么,那么您尝试了什么?为什么它不起作用,或者您不了解您进行的研究呢?

标签: sql sql-server sum aggregate


【解决方案1】:

如果滚动金额是当前付款特定日期前 2 年付款的总和,您可以使用这样的方法:

select a.[Policy No], a.[Date], sum(b.Premium) as amount from
payment a,
payment b join a on a.[Policy No] = b.[Policy No] and
    a.[Date] >= dateadd(year, -2, b.[Date])
group by a.[Policy No], a.[Date]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多