基于多个规则合并记录的SQL
下表是数据基于多个规则合并记录的SQL,sql,merge,rules,Sql,Merge,Rules,下表是数据 AccountID PolicyNumber State Policy_Expiration_Dt VehicleTypeCode ----------------------------------------------------------------------------------------------- 80102 100 CA 21-12-2017 MC 80102 101 CA 21-12-2017 TR 80102 102 CA 21-12-2017 PP
AccountID PolicyNumber State Policy_Expiration_Dt VehicleTypeCode
-----------------------------------------------------------------------------------------------
80102 100 CA 21-12-2017 MC
80102 101 CA 21-12-2017 TR
80102 102 CA 21-12-2017 PP
80103 104 IL 14-12-2017 SO
80103 105 IL 14-12-2017 PP
规则是:
AccountID PolicyNumber State Policy_Expiration_Dt VehicleTypeCode
-----------------------------------------------------------------------------------------------
80102 101 CA 21-12-2017 MC
80102 102 CA 21-12-2017 PP
80103 104 IL 14-12-2017 SO
80103 105 IL 14-12-2017 PP
试着这样做:
--------- CREATING EXAMPLE
CREATE TABLE #Something (
AccountID INT
,PolicyNumber INT
,[State] CHAR(2)
,Policy_Expiration_Dt DATE
,VehicleTypeCode CHAR(2)
)
INSERT INTO #Something
SELECT 80102,100,'CA','12-21-2017','MC'
UNION ALL SELECT 80102,101,'CA','12-21-2017','TR'
UNION ALL SELECT 80102,102,'CA','12-21-2017','PP'
UNION ALL SELECT 80103,104,'IL','12-14-2017','SO'
UNION ALL SELECT 80103,105,'IL','12-14-2017','PP'
---------END
SELECT a.AccountID
,a.Policy_Expiration_Dt
,a.[state]
,a.VehicleTypeCode
FROM (
SELECT AccountID
,Policy_Expiration_Dt
,[state]
,CASE
WHEN VehicleTypeCode = 'TR'
THEN 'MC'
ELSE VehicleTypeCode
END AS 'VehicleTypeCode'
FROM #Something
) a
GROUP BY a.AccountID
,a.Policy_Expiration_Dt
,a.[state]
,a.VehicleTypeCode
请向我们展示您尝试过的内容以及尝试后出现的任何错误。