Click here to Skip to main content
15,893,487 members
Please Sign up or sign in to vote.
5.00/5 (1 vote)
See more:
Hi All,
I have Below table value, i want to merge the Error_message and show only 2 records with comma seperated for second record because SlNo. have 2 records

Sl No. Emp_No Error_Message
1 512542 INVALID EMP NO (EMP NO DOES NOT BELONGS TO SELECTED CLIENT)
2 385539 PAYELEMENT ALREADY EXIST FOR THE Employee
2 385539 RECORD ALREADY EXIST FOR THE SELECTED CLIENT, EMPLOYEE_ID,
TRANSCATION_MONTH AND TRANSCATION_YEAR

The output should be the below format

Sl No. Emp_No Error_Message
1 512542 INVALID EMP NO (EMP NO DOES NOT BELONGS TO SELECTED CLIENT)
2 385539 1. PAYELEMENT ALREADY EXIST FOR THE Employee
2. RECORD ALREADY EXIST FOR THE SELECTED CLIENT, EMPLOYEE_ID,
TRANSCATION_MONTH AND TRANSCATION_YEAR

Am using below Query, but its not working properly as per requirment

SQL
SELECT t1.PersonID,
       Units =REPLACE( (SELECT Unit AS [data()]
           FROM mytable t2
          WHERE t2.PersonID = t1.PersonID
          ORDER BY Unit
            FOR XML PATH('')
            ), ' ', ',')
      FROM mytable t1
      GROUP BY PersonID ;
Posted
Updated 5-Jun-14 4:59am
v2

1 solution

Try like below. But this code put 1. even if there is a single record

SQL
DECLARE @TABLE TABLE (SlNo TINYINT, EmpNo INT, ErrorMessage VARCHAR(500))
INSERT INTO @TABLE VALUES (1, 512542, 'INVALID EMP NO (EMP NO DOES NOT BELONGS TO SELECTED CLIENT)')
,(2, 385539, 'PAYELEMENT ALREADY EXIST FOR THE Employee')
,(3, 385539, 'RECORD ALREADY EXIST FOR THE SELECTED CLIENT, EMPLOYEE_ID, TRANSCATION_MONTH AND TRANSCATION_YEAR')

SELECT * FROM @Table


SELECT EmpNo
       , (SELECT CAST(Row_NUMBER () OVER ( ORDER BY SlNo )  AS VARCHAR) + '. ' + te.ErrorMessage + ' '
          FROM @Table te
          WHERE te.EmpNo = t.EmpNo
          FOR XML PATH(''))
FROM @Table t
GROUP BY EmpNo
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900