472,341 Members | 2,168 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 472,341 software developers and data experts.

selecting the latest date from different columns

I have 6 columns, all with dates within them, i.e.

Proposed Start Date 1
Proposed Start Date 2
Proposed Start Date 3
Proposed Finish Date 1
Proposed Finish Date 2
Proposed Finish Date 3

What I need to do is narrow this down into two fields:
Start Date
Finish Date

So I need to find the newest value from the columns. i.e.
If PS1 filled PS2 and PS3 empty, then Start Date = PS1
If PS3 empty and PS2 filled, then Start Date = PS2
If PS3 filled then PS3

and similarly for Proposed Finish Dates.

Anyone knew how I can do this.

(Maybe the following will help for the programmers out there:
If PS3 <> null
Then StartDate = PS3
Else if PS2 <> null
Then StartDate = PS2
Else
StartDate = PS1
End IF

Jagdip
Jul 20 '05 #1
5 3953
Jagdip,

Look up COALESCE in BOL.

Something like this?

SELECT
StartDate = COALESCE(ProposedStartDate3, ProposedStartDate2,
ProposedStartDate1),
FinishDate = COALESCE(ProposedFinishDate3, ProposedFinishDate2,
ProposedFinishDate1)
FROM MyTable

-Andy

"Jagdip Singh Ajimal" <js*****@hotmail.com> wrote in message
news:c8**************************@posting.google.c om...
I have 6 columns, all with dates within them, i.e.

Proposed Start Date 1
Proposed Start Date 2
Proposed Start Date 3
Proposed Finish Date 1
Proposed Finish Date 2
Proposed Finish Date 3

What I need to do is narrow this down into two fields:
Start Date
Finish Date

So I need to find the newest value from the columns. i.e.
If PS1 filled PS2 and PS3 empty, then Start Date = PS1
If PS3 empty and PS2 filled, then Start Date = PS2
If PS3 filled then PS3

and similarly for Proposed Finish Dates.

Anyone knew how I can do this.

(Maybe the following will help for the programmers out there:
If PS3 <> null
Then StartDate = PS3
Else if PS2 <> null
Then StartDate = PS2
Else
StartDate = PS1
End IF

Jagdip

Jul 20 '05 #2
Does this work even if more than 2 fields are filled?

I need it to select the highest PSnumber. More that one PS field can be
filled.

*** Sent via Developersdex http://www.developersdex.com ***
Don't just participate in USENET...get rewarded for it!
Jul 20 '05 #3
Jagdip Ajimal <js*****@hotmail.com> wrote in message news:<41**********************@news.newsgroups.ws> ...
Does this work even if more than 2 fields are filled?

I need it to select the highest PSnumber. More that one PS field can be
filled.

*** Sent via Developersdex http://www.developersdex.com ***
Don't just participate in USENET...get rewarded for it!


COALESCE returns the first non-NULL argument supplied to it, so
provided you pass the columns in order of most desired - least
desired, it'll work as wanted
Jul 20 '05 #4
Yes, it would work as Damien describes, but you would have to modify you
table if you wanted to add more than 3 start or finish dates. You really
should denormalize a bit.

How about:

CREATE TABLE Jobs
(
JobID int,
Junk1 varchar(10),
Junk2 varchar(10)
--etc...
)

CREATE TABLE JobDates
(
JobID int,
StartFinish char(1) CONSTRAINT ckStartFinish CHECK (StartFinish IN('S',
'F')),
JobDate datetime
)

INSERT INTO Jobs VALUES (1, 'asdfad', 'asdfad')
INSERT INTO Jobs VALUES (2, 'asdfad', 'asdfad')
INSERT INTO Jobs VALUES (3, 'asdfad', 'asdfad')

INSERT INTO JobDates VALUES (1, 'S', '20041001')
INSERT INTO JobDates VALUES (1, 'S', '20041002')
INSERT INTO JobDates VALUES (1, 'S', '20041003')
INSERT INTO JobDates VALUES (2, 'S', '20041001')
INSERT INTO JobDates VALUES (2, 'S', '20041002')
INSERT INTO JobDates VALUES (3, 'S', '20041001')
INSERT INTO JobDates VALUES (1, 'F', '20041011')
INSERT INTO JobDates VALUES (1, 'F', '20041006')
INSERT INTO JobDates VALUES (2, 'F', '20041007')

Then you can do something like:

SELECT a.JobID,
StartDate = (SELECT MAX(b.JobDate) FROM JobDates b WHERE b.StartFinish = 'S'
AND b.JobID = a.JobID),
FinishDate = (SELECT MAX(b.JobDate) FROM JobDates b WHERE b.StartFinish =
'F' AND b.JobID = a.JobID)
FROM Jobs a

Just an idea...

-Andy

"Jagdip Ajimal" <js*****@hotmail.com> wrote in message
news:41**********************@news.newsgroups.ws.. .
Does this work even if more than 2 fields are filled?

I need it to select the highest PSnumber. More that one PS field can be
filled.

*** Sent via Developersdex http://www.developersdex.com ***
Don't just participate in USENET...get rewarded for it!

Jul 20 '05 #5
Firstly bad database design - as your dates are not normalized in that they
appear across a row and not down in their own columns.
But I am assuming you are needing to work with the bad design of others, so
I am taking pity on you, as I have been there before.
If you made this design yourself, please don't infect others and check
yourself into a Data Modeling class as soon as possible..

The aggregate function max doesn't work unless it has a table or result set
to process.
So we would have to create one from your individual selects thru a union
(reverse pivot your table) and assign that an alias so it looks like a real
table.

select max( dDate )
from
(
select start1 as dDate ...
union all
select start1 ...
union all
select finish2 ...
union all
select finish1 ...
) as Dates

replace the '...' above with the rest of your from and where clause to
generate.
"Jagdip Ajimal" <js*****@hotmail.com> wrote in message
news:41**********************@news.newsgroups.ws.. .
Does this work even if more than 2 fields are filled?

I need it to select the highest PSnumber. More that one PS field can be
filled.

*** Sent via Developersdex http://www.developersdex.com ***
Don't just participate in USENET...get rewarded for it!

Jul 20 '05 #6

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

4
by: Gleep | last post by:
Hey Guys, I've got a table called Outcomes. With 3 columns and 15 rows 1st col 2nd col 3rdcol outcome ...
3
by: jas | last post by:
> This is what I want to do with the data table below. > > I only want it to show one id for each issue. ( ie, 4001 only once, > 4002 only once,...
6
by: aaj | last post by:
Hi all I use a data adapter to read numerous tables in to a dataset. The dataset holds tables which in turn holds full details of the records...
24
by: clare at snyder.on.ca | last post by:
I have a SQL query I need to design to select name and email addresses for policies that are due and not renewed in a given time period. The...
8
by: TGEAR | last post by:
I have an ItemSTDPriceHistory table as below and this is a child table of itemlookup table with one to many relationship. if exists (select *...
4
by: J | last post by:
I am editing a pre-existing view. This view is already bringing data from 40+ tables so I am to modify it without screwing with anything else...
1
by: ode | last post by:
I am an infrequent user and my version is Access 2000. I have a list of 122k lines which consits of 3 fields/data points;a product code, a date, and...
0
by: Guido Konsolke | last post by:
"JN" <jirinej@volny.czschrieb im Newsbeitrag news:7e29a94a.0307090205.179bca49@posting.google.com... all Firstl of all: it's not too smart...
1
by: WarcraftNoob | last post by:
This is what I have right now, SELECT Project, S_on, P_on, H_on, A_on, I_on, 1_on, 2_on, 3_on, 4_on, Z_on, D_on, T_on, K_on, F_on, J_on, FINAL_on...
0
by: concettolabs | last post by:
In today's business world, businesses are increasingly turning to PowerApps to develop custom business applications. PowerApps is a powerful tool...
0
better678
by: better678 | last post by:
Question: Discuss your understanding of the Java platform. Is the statement "Java is interpreted" correct? Answer: Java is an object-oriented...
0
by: CD Tom | last post by:
This only shows up in access runtime. When a user select a report from my report menu when they close the report they get a menu I've called Add-ins...
0
by: Naresh1 | last post by:
What is WebLogic Admin Training? WebLogic Admin Training is a specialized program designed to equip individuals with the skills and knowledge...
0
jalbright99669
by: jalbright99669 | last post by:
Am having a bit of a time with URL Rewrite. I need to incorporate http to https redirect with a reverse proxy. I have the URL Rewrite rules made...
0
by: antdb | last post by:
Ⅰ. Advantage of AntDB: hyper-convergence + streaming processing engine In the overall architecture, a new "hyper-convergence" concept was...
0
by: Matthew3360 | last post by:
Hi there. I have been struggling to find out how to use a variable as my location in my header redirect function. Here is my code. ...
0
by: AndyPSV | last post by:
HOW CAN I CREATE AN AI with an .executable file that would suck all files in the folder and on my computerHOW CAN I CREATE AN AI with an .executable...
0
hi
by: WisdomUfot | last post by:
It's an interesting question you've got about how Gmail hides the HTTP referrer when a link in an email is clicked. While I don't have the specific...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.