Erick W
asked on
Comparing two columns in a table, creating another column based on said column, then updating other columns in the table based on the new column
Hi Experts...
Here is my dilemma. I have a table (myTable) that contains two columns (StartDate, AdjustedHireDate). Each row contains information for each employee with EmployeeID as the PK.
I need to evaluate these two columns and select whichever date is latest (d1).
Then I am going to update the table based on a date this year that matches the month and day of the 'd1' date (UserDefinedDate1). Following that, I will add 60 days to the UserDefinedDate1 column and get a date in the future.
I'm close, but I cant get the d1 column populated because it's returning more than one value. I don't know how to separate the update for each row.
Does that make sense??
In the end I would like to have this result:
startdate AHDate d1 UDDate1 UDDate2
02/01/2007 05/16/2009 5/16/2009 5/16/2014 4/16/2014
Thanks for any help you can provide.
Here is my dilemma. I have a table (myTable) that contains two columns (StartDate, AdjustedHireDate). Each row contains information for each employee with EmployeeID as the PK.
I need to evaluate these two columns and select whichever date is latest (d1).
Then I am going to update the table based on a date this year that matches the month and day of the 'd1' date (UserDefinedDate1). Following that, I will add 60 days to the UserDefinedDate1 column and get a date in the future.
I'm close, but I cant get the d1 column populated because it's returning more than one value. I don't know how to separate the update for each row.
Does that make sense??
--UPDATE myTable
declare @d1 DATETIME
set @d1 = (SELECT CASE WHEN AdjustedHireDate >= StartDate
Then AdjustedHireDate
else StartDate
end
FROM myTable)
--SET UserDefinedDate1 = DATEADD(YEAR, year(getdate())-year(d1), D1)
-- , UserDefinedDate3 = DATEADD(DAY, 60, DATEADD(YEAR, year(getdate())-year(D1), D1))
-- , UserDefinedDate5 = DATEADD(DAY, 180, DATEADD(YEAR, year(getdate())-year(D1), D1))
SELECT
SupervisorID
, EmployeeID
, StartDate
, AdjustedHireDate
, UserDefinedDate1
, UserDefinedDate2
, UserDefinedDate3
FROM dbo.tblPaEmpGenInfo
In the end I would like to have this result:
startdate AHDate d1 UDDate1 UDDate2
02/01/2007 05/16/2009 5/16/2009 5/16/2014 4/16/2014
Thanks for any help you can provide.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
I suspect Scott meant (no points please):
SET UserDefinedDate1 = peg.UserDefinedDate1,
UserDefinedDate3 = DATEADD(DAY, 60, peg.UserDefinedDate1),
UserDefinedDate5 = DATEADD(DAY, 180, peg.UserDefinedDate1)
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Scott,
Thank you very much. Incidentally, I did the same thing Anthony did. LOL wrong table.
Thank you again. Full points from your original answer.
Thank you very much. Incidentally, I did the same thing Anthony did. LOL wrong table.
Thank you again. Full points from your original answer.
ASKER
UserDefinedDate1 = UserDefinedDate1,
Any ideas?