显示过去3年中每个月在SQL中的摘要数据

时间:2018-07-17 18:56:54

标签: sql-server-2008

我有这个T-SQL查询,它将是索赔的总数,即声明日期的美元价值。

但是我需要找到从2016年开始直到今天/昨天的每个月的计数和美元价值。我想将结果集加载到新表中。有什么想法或建议吗?提前致谢!

T-SQL查询

DECLARE @AsofDATE AS DATE
DECLARE @AsofDateINT AS INT

SET @AsofDATE = '1/1/2018'      
SET @AsofDateINT = 20180101

SELECT  
    COUNT(S.ClaimNum) Count_of_Claims, 
    SUM(ReserveIndemnityAmount) AS RD_REserve,
    @AsofDATE AS AsofDate 
-- INTO #tempRD
FROM    
    (SELECT    
         f.*,
         ROW_NUMBER() OVER (PARTITION BY ClaimNum ORDER BY f.ModifiedDate DESC) AS Row_order_desc
     FROM
         [dbo].[Snapshot] f
     WHERE     
         CAST(f.ModifiedDate AS DATE) <= @AsofDATE) S
LEFT OUTER JOIN
    (SELECT 
         ClaimKey, SUM( t.LossRsvAmt) AS ReserveIndemnityAmount  
     FROM  
         Stg.Claim_Transaction t  
     WHERE 
         TransactionDate < @AsofDateINT 
     GROUP BY 
         ClaimKey) T ON t.ClaimKey = s.ClaimID
WHERE   
    S.Row_order_desc = 1
    AND S.DerivedClaimStatus NOT IN ('Closed', 'Cancelled', 'Abandoned', 'Record only', 'Opened in error' )
    AND s.specialty = 'RD'

当前结果:

Count_of_Claims     RD_REserve          AsofDate
-------------------------------------------------
    15317           112192.15           2018-01-01

预期结果:

Count_of_Claims     RD_REserve          AsofDate
-------------------------------------------------
    15317           112192.15           2017-01-12
    15567           111592.15           2017-01-11
    15356           15492.15            2017-01-10

1 个答案:

答案 0 :(得分:0)

您的AsofDate已硬编码返回。为什么不将其替换为ModifiedDate?

类似

select 
 count(s.claimnum) countofclaims
,sum(amount) amount
,cast(eomonth(modifieddate) as date) [asofdate]
from your query...

group by 
 cast(eomonth(modifieddate) as date)