In mssql2000 i was also encountered same situation and at that time I used cursor to merge record
1) I created stored procedure using cursor
2) Entered merged data into temporary table
3) Returned the result of temp table to user
Problems with this type of report, This makes performance of report very very slow, I had to convince the client not to have this kind of report.
I dont know about sql 2005 that is there any function to concate or merge record or not.
Following is sample code for reference
---------------------------------------------------------------
CREATE PROCEDURE USP_MERGE_EMPTASK
AS
---CREATE TEMP TRANS TABLE
CREATE TABLE #TEMP_TRANS_DETAIL(EMPLOYEEID INT,
EMPLOYEENAME VARCHAR(250),TASK VARCHAR(1000))
--INSERT EMPLYEES RECORDS INT TEMP TABLE FROM EMPLOYEEMASTER
INSERT INTO #TEMP_TRANS_DETAIL (EMPLOYEEID,EMPLOYEENAME,TASK)
SELECT B.EMPLOYEEID,B.EMPLOYEENAME,''
FROM EMPLOYEEMASTER B
DECLARE @EMPLOYEEID INT
DECLARE @TXT VARCHAR(30)
--DECLARE CURSOR
DECLARE MAINCUR CURSOR FOR
SELECT EMPLOYEEID,TASK FROM TRANS_DETAIL ORDER BY EMPLOYEEID--THIS IS ACTUAL TABLE FROM WHERE WE WILL FETCH TASK OF EMPLOYEE ONE BY ONE
OPEN MAINCUR
WHILE (1=1)
BEGIN
FETCH NEXT FROM MAINCUR INTO @EMPLOYEEID,@TXT
IF(@@FETCH_STATUS <> 0)
BREAK
--UPDATE TEMPORAY TRANSACTION TABLE
UPDATE #TEMP_TRANS_DETAIL SET #TEMP_TRANS_DETAIL.TASK=#TEMP_TRANS_DETAIL.TASK+@T XT+' '
WHERE EMPLOYEEID=@EMPLOYEEID
END
CLOSE MAINCUR
DEALLOCATE MAINCUR
SELECT EMPLOYEEID, EMPLOYEENAME,TASK FROM #TEMP_TRANS_DETAIL
GO
---------------------------------------------------------------
urt
Help yourself by helping someone.
|