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.
| 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_nbrWhere (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_nameorder by a.group_code[/code][code]ok. Here is how the data looks.Groupcode station_nbr beg_eff_date end_eff_date C02 sample_date0004 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 KizerMicrosoft MVP for Windows Server System - SQL Serverhttp://weblogs.sqlteam.com/tarad/ |
 |
|
|
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 recordD01G000819 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!!!! |
 |
|
|
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 KizerMicrosoft MVP for Windows Server System - SQL Serverhttp://weblogs.sqlteam.com/tarad/ |
 |
|
|
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. |
 |
|
|
|
|
|
|
|