具有 MAX 条件的 SQL Sum

Nee*_*eti 2 sql-server

我有两个名为 Claim 的表

EmployeeClaimId
      1144
      3481
      3452
      5760
      7296
Run Code Online (Sandbox Code Playgroud)

和索赔状态

EmployeeClaimId   Amount   Version
       7            0.00      1
       7          300.00      3
       7          150.00      3
       7          400.00      1
       7          300.00      7
      14         1860.00      1
      14          541.00      7
      14          530.00      1
      14         2490.00      1
Run Code Online (Sandbox Code Playgroud)

我想要第二个表中的金额总和,其中每个 claimid 的版本都是最大值。

有人可以帮忙吗?

iri*_*ias 5

什么是Claim用于表?

嗯,你可以试试:

select EmployeeClaimId, sum(Amount)
from ClaimStatus cs
join (
    select EmployeeClaimId, max(version) as version
    from ClaimStatus 
    group by EmployeeClaimId
    ) c on cs.EmployeeClaimId = c.EmployeeClaimId
        and cs.version = c.version
Run Code Online (Sandbox Code Playgroud)