【问题标题】:How to rollup duplicated records to specific record in query results如何将重复记录汇总到查询结果中的特定记录
【发布时间】:2019-03-26 17:50:26
【问题描述】:

在我的查询结果中,我在特定政策中为驾驶员获得了重复的车辆,并且在我的初始查询中结果很好。这是我的结果:

从上面的图片中,我想仅显示 POLICYHOLDER 的 VEHICLE 记录,并从同一策略中的 ACTIVE 记录中删除这些相同的车辆。这是我希望它的样子:

这是我的sql代码:

WITH CTE1 as 
(
SELECT pr1.*
FROM #tempPIFRecords pr1
), 
CTE2 as (
SELECT pavr.*
FROM #tempPIFAssocVehicleRecords pavr
)

SELECT CTE1.*, CTE2.Year, CTE2.Make, CTE2.Model, CTE2.[Effective Date], CTE2.[Expiration Date]
FROM CTE1
LEFT OUTER JOIN CTE2
ON CTE1.AgentNo = CTE2.AgentNo
AND CTE1.PolicyNo = CTE2.PolicyNo
ORDER BY CTE1.AgentNo asc, CTE1.PolicyNo asc;

任何帮助/指导将不胜感激。谢谢。

【问题讨论】:

    标签: sql-server tsql rollup


    【解决方案1】:

    这应该没问题:

    WITH CTE1 as 
    (
    SELECT pr1.*
    FROM #tempPIFRecords pr1
    ), 
    CTE2 as (
    SELECT pavr.*
    FROM #tempPIFAssocVehicleRecords pavr
    )
    
    SELECT CTE1.*, ISNULL(CTE2.Year, '') AS Year, ISNULL(CTE2.Make, '') AS MAke, ISNULL(CTE2.Model, '') AS Model, ISNULL(CTE2.[Effective Date], '') AS [Effective Date], ISNULL(CTE2.[Expiration Date], '') AS [Expiration Date]
    FROM CTE1
    LEFT OUTER JOIN CTE2
    ON CTE1.AgentNo = CTE2.AgentNo
    AND CTE1.PolicyNo = CTE2.PolicyNo
    AND CTE1.[DriverType] = 'PolicyHolder'
    ORDER BY CTE1.AgentNo asc, CTE1.PolicyNo asc;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-16
      • 1970-01-01
      • 1970-01-01
      • 2020-06-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多