Conversion failed when converting the varchar value '1 12:57:39 3168.68 485 H5555' to data type int. This occurred in SQL Server 2012 for the following code.
SELECT
MEMBER_ID
,STUFF
(
(
SELECT ',[' + C1 + '-' + C2 + ']' AS [text()]
FROM
(
SELECT DISTINCT A.MEMBER_ID
,A.CLAIM_ID AS C1
,A.PLAN_ID AS PC1
,B.CLAIM_ID C2
,B.PLAN_ID AS PC2
,A.AMOUNT AS AMT1
,B.AMOUNT AS AMT2
FROM TestSQL A
JOIN TestSQL B ON A.MEMBER_ID = B.MEMBER_ID
WHERE A.CLAIM_ID <> '1 12:57:39 3168.68 485 H5555'
AND YEAR(A.DATE) > 2000
AND B.DATE > A.DATE
AND B.PLAN_ID <> A.PLAN_ID
AND (CAST(B.CLAIM_ID AS INT)-CAST(A.CLAIM_ID AS INT))=2
) Y
WHERE MEMBER_ID = X.MEMBER_ID
FOR XML PATH('')
),1,1,''
) AS CLAIM_ID_LIST
FROM
(
SELECT DISTINCT A.MEMBER_ID
,A.CLAIM_ID AS C1
,A.PLAN_ID AS PC1
,B.CLAIM_ID C2
,B.PLAN_ID AS PC2
,A.AMOUNT AS AMT1
,B.AMOUNT AS AMT2
FROM TestSQL A
JOIN TestSQL B ON A.MEMBER_ID = B.MEMBER_ID
WHERE YEAR(A.DATE) > 2000
AND B.DATE > A.DATE
AND B.PLAN_ID <> A.PLAN_ID
AND (CAST(B.CLAIM_ID AS INT)-CAST(A.CLAIM_ID AS INT))=2
AND A.CLAIM_ID IN (SELECT CLAIM_ID FROM TestSQL WHERE MEMBER_ID<>'')
) X
I have tried to filter out 1 12:57:39 3168.68 485 H5555 and still gives me this error. This is a CLAIM_ID. I suspect it's the
WHERE MEMBER_ID = X.MEMBER_ID
clause right above the FOR XML PATH but I don't know why. The second subquery works. I appreciate any insights on this.
CLAIM_ID?CLAIM_ID, you might want to filter that first in a subquery.X, without saying to ignore '1 12:57:39 3168.68 485 H5555'