Click here to Skip to main content
15,891,409 members
Please Sign up or sign in to vote.
3.00/5 (1 vote)
See more:
Hi all

I have the data like this
VB
Empid   Datevalue
anil    5/1/2013
anil    5/2/2013
anil    5/3/2013
anil    5/5/2013
anil    5/7/2013
anil    5/8/2013
anil    5/9/2013
anil    5/10/2013
mahesh  5/1/2013
mahesh  5/2/2013
mahesh  5/3/2013
mahesh  5/4/2013
mahesh  5/5/2013
mahesh  5/6/2013
mahesh  5/8/2013
mahesh  5/9/2013




now I want to get the output like

VB
Empid   Datevalue
anil    5/1/2013
anil    5/2/2013
anil    5/3/2013
anil    5/4/2013
anil    5/5/2013
anil    5/6/2013
anil    5/7/2013
anil    5/8/2013
anil    5/9/2013
anil    5/10/2013
mahesh  5/1/2013
mahesh  5/2/2013
mahesh  5/3/2013
mahesh  5/4/2013
mahesh  5/5/2013
mahesh  5/6/2013
mahesh  5/7/2013
mahesh  5/8/2013
mahesh  5/9/2013
mahesh  5/10/2013





could any one help me out to get this


Regards,
prakash.ch
Posted

Assuming that the name of your table is empdata.

SQL
Declare Cursor_EmpIds CURSOR LOCAL FORWARD_ONLY FOR Select distinct empid from empdata;
Declare @CurrentEmpId varchar(80);
Declare @LoopController bit = 0;
Declare @CompareDate date;
Declare @TemporaryTable TABLE (empid varchar(80),DateValue date);
OPEN Cursor_EmpIds;
FETCH NEXT FROM Cursor_EmpIds into @CurrentEmpId;
While @@FETCH_STATUS=0 
BEGIN
	SET @LoopController=0;
	SET @CompareDate=CAST('2013-05-01' as date);
	WHILE @LoopController=0
	BEGIN
		IF (SELECT COUNT(*) from empdata where empid=@CurrentEmpId AND DateValue=@CompareDate)=0
		BEGIN
			INSERT INTO @TemporaryTable VALUES (@CurrentEmpId,@CompareDate);
		END
		Set @CompareDate=DATEADD(day,1,@CompareDate);
		If @CompareDate=CAST('2013-05-11' as date)
		BEGIN
		    SET @LoopController=1;
		END
	END
FETCH NEXT FROM Cursor_EmpIds into @CurrentEmpId;
END
Close Cursor_EmpIds;
SELECT empid,datevalue from EmpData UNION SELECT empid,datevalue from @TemporaryTable order by empid,datevalue;



Tested on Microsoft SQL Server Express 2012
 
Share this answer
 
v5
Comments
prakash.chakrala 22-Jun-13 7:00am    
Hi Mike Meinz

Actually I have the data like this

EmpId projectid projectname DateValue EnterDate Noofworkinghours HolidayName
balakrishnan.naveen 67 Other 5/1/2013 5/1/2013 2
balakrishnan.naveen 74 Meeting 5/1/2013 5/1/2013 3.5
balakrishnan.naveen 41 bbb 5/1/2013 5/1/2013 1.5
balakrishnan.naveen 74 Meeting 5/2/2013 5/2/2013 2
balakrishnan.naveen 67 Other 5/2/2013 5/2/2013 2
balakrishnan.naveen NULL NULL 5/3/2013 NULL 0
balakrishnan.naveen NULL NULL 5/4/2013 NULL 0 Weekend
balakrishnan.naveen NULL NULL 5/5/2013 NULL 0 Weekend
balakrishnan.naveen 67 Other 5/6/2013 5/6/2013 2
balakrishnan.naveen 67 Other 5/7/2013 5/7/2013 1.5
balakrishnan.naveen 67 Other 5/8/2013 5/8/2013 2
balakrishnan.naveen 74 Meeting 5/8/2013 5/8/2013 3
balakrishnan.naveen 74 Meeting 5/9/2013 5/9/2013 1
balakrishnan.naveen 67 Other 5/9/2013 5/9/2013 6.5
balakrishnan.naveen 41 bbb 5/9/2013 5/9/2013 1
balakrishnan.naveen 67 Other 5/10/2013 5/10/2013 6
balakrishnan.naveen 74 Meeting 5/10/2013 5/10/2013 1
balakrishnan.naveen NULL NULL 5/11/2013 NULL 0 Weekend
balakrishnan.naveen NULL NULL 5/12/2013 NULL 0 Weekend
balakrishnan.naveen 74 Meeting 5/13/2013 5/13/2013 1
balakrishnan.naveen 67 Other 5/13/2013 5/13/2013 7
balakrishnan.naveen 67 Other 5/14/2013 5/14/2013 4
balakrishnan.naveen 74 Meeting 5/14/2013 5/14/2013 2
balakrishnan.naveen 74 Meeting 5/15/2013 5/15/2013 6
balakrishnan.naveen 67 Other 5/15/2013 5/15/2013 2
balakrishnan.naveen 67 Other 5/16/2013 5/16/2013 7
balakrishnan.naveen 74 Meeting 5/16/2013 5/16/2013 2
balakrishnan.naveen 67 Other 5/17/2013 5/17/2013 4
balakrishnan.naveen NULL NULL 5/18/2013 NULL 0 Weekend
balakrishnan.naveen NULL NULL 5/19/2013 NULL 0 Weekend
balakrishnan.naveen 67 Other 5/20/2013 5/20/2013 2
balakrishnan.naveen NULL NULL 5/21/2013 NULL 0
balakrishnan.naveen NULL NULL 5/22/2013 NULL 0
balakrishnan.naveen 67 Other 5/23/2013 5/23/2013 6
balakrishnan.naveen 74 Meeting 5/23/2013 5/23/2013 1
balakrishnan.naveen 74 Meeting 5/24/2013 5/24/2013 1
balakrishnan.naveen 67 Other 5/24/2013 5/24/2013 7
balakrishnan.naveen NULL NULL 5/25/2013 NULL 0 Weekend
balakrishnan.naveen NULL NULL 5/26/2013 NULL 0 Weekend
balakrishnan.naveen 67 Other 5/27/2013 5/27/2013 7
balakrishnan.naveen 74 Meeting 5/27/2013 5/27/2013 1
balakrishnan.naveen NULL NULL 5/28/2013 NULL 0
balakrishnan.naveen NULL NULL 5/29/2013 NULL 0
balakrishnan.naveen NULL NULL 5/30/2013 NULL 0
pavani.k 67 Other 5/1/2013 5/1/2013 1
pavani.k 35 aaa 5/1/2013 5/1/2013 7
pavani.k NULL NULL 5/5/2013 NULL 0 Weekend
pavani.k 67 Other 5/8/2013 5/8/2013 8
pavani.k 67 Other 5/9/2013 5/9/2013 8
pavani.k 67 Other 5/10/2013 5/10/2013 8
pavani.k NULL NULL 5/11/2013 NULL 0 Weekend
pavani.k NULL NULL 5/12/2013 NULL 0 Weekend
pavani.k 67 Other 5/13/2013 5/13/2013 8
pavani.k 67 Other 5/14/2013 5/14/2013 8
pavani.k 67 Other 5/15/2013 5/15/2013 8
pavani.k 67 Other 5/16/2013 5/16/2013 8
pavani.k 67 Other 5/17/2013 5/17/2013 8
pavani.k NULL NULL 5/18/2013 NULL 0 Weekend
pavani.k NULL NULL 5/19/2013 NULL 0 Weekend
pavani.k 67 Other 5/20/2013 5/20/2013 2
pavani.k 40 ccc 5/20/2013 5/20/2013 6
pavani.k 67 Other 5/21/2013 5/21/2013 8
pavani.k 67 Other 5/22/2013 5/22/2013 8
pavani.k NULL NULL 5/23/2013 NULL 0
pavani.k NULL NULL 5/24/2013 NULL 0
pavani.k NULL NULL 5/25/2013 NULL 0 Weekend
pavani.k NULL NULL 5/26/2013 NULL 0 Weekend
pavani.k NULL NULL 5/27/2013 NULL 0
pavani.k NULL NULL 5/28/2013 NULL 0
pavani.k NULL NULL 5/29/2013 NULL 0
pavani.k NULL NULL 5/30/2013 NULL 0


now I want to perform the above rule if any datevalue is missing I have to get that data
according name and I should get project id as null and project name is null and noofworkinghours null,holidayname as null

could u help me out
RedDk 22-Jun-13 13:26pm    
Yeah, points for showing the data anyway ...
damodara naidu betha 24-Jun-13 2:04am    
please change your question according to your requirement and also post what you have done so far to get the result.
Mike Meinz 22-Jun-13 7:02am    
I am not sure what you expect me to do. I gave you a solution to your question and now you want me to do your project for you? Please write the code yourself and, if you have difficulty with the syntax, ask questions about it.
Populate date table and then left join with your table

CREATE TABLE DateTable(DateVale DATE)
DECLARE @Mindate DATE = '2013-01-01'
DECLARE @Maxdate DATE = '2013-01-15'

;WITH Dates(DATEPARAM) AS
(
SELECT @Mindate AS DATE
UNION ALL
SELECT DATEADD(DAY, 1, DATEPARAM) FROM Dates WHERE DATEPARAM < @Maxdate
)
INSERT DateTable
SELECT * FROM Dates
 
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