SQL Server 2005 SQL Error

The below SQL is producing the following error:

Msg 207, Level 16, State 1, Line 21
Invalid column name 'StartDate'.
Msg 207, Level 16, State 1, Line 22
Invalid column name 'ClosingDateFinal'.
Msg 207, Level 16, State 1, Line 22
Invalid column name 'ClosingDateF2'.

Any ideas?
CASE WHEN [dtStart] IS NULL THEN NULL 
      ELSE CAST(MONTH([dtStart]) AS varchar(2)) + '/1/' + 
               CAST(YEAR([dtStart]) AS varchar(4)) + ' 5:00 PM' END AS StartDate,
CAST([StartDate] AS datetime) AS StartDate2,
CASE WHEN StartDate Is Null THEN Null ELSE [StartDate2] END AS Dt3

Open in new window

LVL 1
CipherISAsked:
Who is Participating?
 
BrandonGalderisiConnect With a Mentor Commented:
StartDate and StartDate2 are not columns in your table, they are aliases in your select statement.  They cannot be referenced in the statement itself unless you place the select into a derived table.  From there, the statements can reference by alias.

example:
select CASE WHEN StartDate Is Null THEN Null ELSE [StartDate2] END AS Dt3
from
(select CAST([StartDate] AS datetime) AS StartDate2
from 
(select CASE WHEN [dtStart] IS NULL THEN NULL 
      ELSE CAST(MONTH([dtStart]) AS varchar(2)) + '/1/' + 
               CAST(YEAR([dtStart]) AS varchar(4)) + ' 5:00 PM' END AS StartDate
from TableA) a)b)c

Open in new window

0
 
Chris LuttrellSenior Database ArchitectCommented:
I am assuming this is the select column list in a query.  startdate looks to be a column alias and you can not use it on another line.  You will have to reuse the entire logic for startdate or rework the query some, but there is not enough detail here to help with that.
0
 
vinurajrCommented:
IS THE CODE U SEND IS CORRECT.. WHAT IS UR REQUIREMENT...?
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.