Please start any new threads on our new site at https://forums.sqlteam.com. We've got lots of great SQL Server experts to answer whatever question you can come up with.

 All Forums
 General SQL Server Forums
 New to SQL Server Programming
 Help with the Selection

Author  Topic 

osirisa
Constraint Violating Yak Guru

289 Posts

Posted - 2007-11-16 : 14:41:05
[code]
SELECT Distinct a.group_code, a.group_name + '-'+ a.group_note As full_name ,
b.station_nbr, b.beg_eff_date, b.end_eff_date,
Round( e.C02_pct,3)As C02_pct, MAX( e.sample_date)As Highest_Sample_Date, d.station_name
from [HOU-TIES01].TIES_Gathering.dbo.group_detail a
Inner Join [HOU-TIES01].TIES_Gathering.dbo.station_group b on a.group_code = b.group_code
Inner Join [HOU-TIES01].TIES_Gathering.dbo.station_type c on b.station_nbr = c.station_nbr
Inner JOIN [HOU-TIES01].TIES_Gathering.dbo.station d ON c.station_nbr = d.station_nbr
Inner JOIN [HOU-TIES01].TIES_Gathering.dbo.gas_analysis e ON d.station_nbr = e.station_nbr
Where (b.station_nbr=e.station_nbr)and (b.group_code = a.group_code) and
(a.group_type = 'NPN')and( b.end_eff_date >=DATEADD(mm,DATEDIFF(mm,0,dateadd(mm,-0-datepart(day,0),getdate())),0))
and ( (c.type_code = 'WHM')or ( c.type_code = 'CRP'))and
(e.sample_date Between DATEADD(mm,DATEDIFF(mm,0,dateadd(mm,-0-datepart(day,0),getdate())),0)
and DATEADD(mm, DATEDIFF(mm,0,getdate()), 0))
and e.seq_nbr =
(select max(x.seq_nbr)
From [HOU-TIES01].TIES_Gathering.dbo.gas_analysis x
Where x.station_nbr = b.station_nbr
and x.sample_date= e.sample_date )
and e.C02_pct =
(Select max(x.C02_pct)
From [HOU-TIES01].TIES_Gathering.dbo.gas_analysis x
Where x.station_nbr = b.station_nbr
and x.sample_date= e.sample_date )
Group by a.group_code, a.group_name, a.group_note, b.station_nbr, b.beg_eff_date, b.end_eff_date, e.c02_pct, d.station_name
order by a.group_code

[/code]
[code]
ok. Here is how the data looks.
Group
code station_nbr beg_eff_date end_eff_date C02 sample_date
0004 D01G000819 2007-09-01 3000-12-31 0.40 2007-10-02
0004 D01G000819 2007-09-01 3000-12-31 2.49 2007-10-09
[/code]

What I am trying to do is to select the most current sample date. In this case "2007/10/09" when station_nbr and group_code are the same for both dates.

Thank You for all your help!!!!
From the Jr.in SQL

tkizer
Almighty SQL Goddess

38200 Posts

Posted - 2007-11-16 : 15:06:45
What is your question?

Tara Kizer
Microsoft MVP for Windows Server System - SQL Server
http://weblogs.sqlteam.com/tarad/
Go to Top of Page

osirisa
Constraint Violating Yak Guru

289 Posts

Posted - 2007-11-16 : 15:11:46
Ok. I am not getting the result I was expecting from the Selection querie. I was expecting to only get this record


D01G000819 2007-09-01 3000-12-31 2.49 2007-10-09

Instead
I am pulling both records. This part of the selection MAX( e.sample_date)As Highest_Sample_Date--doesn't seem to be working.

Thanks for the help!!!!
Go to Top of Page

tkizer
Almighty SQL Goddess

38200 Posts

Posted - 2007-11-16 : 15:26:21
That's because you are grouping the data.

If you want just the one row returned, add that criteria to your WHERE clause.

Tara Kizer
Microsoft MVP for Windows Server System - SQL Server
http://weblogs.sqlteam.com/tarad/
Go to Top of Page

Lamprey
Master Smack Fu Yak Hacker

4614 Posts

Posted - 2007-11-16 : 16:07:06
What I think you need to do is select the GoupCode, StationNumber and MAX(Sample_Date) as a Derived Table, then join to your "main" set of data to get the results you want. For example:
INNER JOIN
(
SELECT group_code, station_nbr, MAX(sample_date)
FROM [HOU-TIES01].TIES_Gathering.dbo.gas_analysis
GROUP BY group_code, station_nbr

) AS temp

But it's hard to tell what column are available as you have not supplied your schema. But, that might help guide you in the right direction.
Go to Top of Page
   

- Advertisement -