JOZO
JOZO

Reputation: 89

SQL Server 2008 multiple column filter

I have stuck on sql query to bring the wanted data. I have table as following enter image description here

I have tried cte table but did not work . I need the get source 'O' if available else 'T' with max sequence as above result table.

select district
     , id
     , building
     , year
     , date
     , period
     , sequence
     , source from GetAttData gt with (nolock) where sequence in (select max(sequence) from GetAttData with (nolock)
                where district = gt.district 
                    and building = gt.building 
                    and year = gt.year
                    and id= gt.id
                group by district, id, building, year, date, period)
    and source =  'O' 

Upvotes: 0

Views: 44

Answers (1)

GSerg
GSerg

Reputation: 78185

select
  district, id, building, year, date, period, sequence, source
from (
  select district, id, building, year, date, period, sequence, source,
  row_number() over(partition by district, id, building, year, date, period
                    order by case when source = 'O' then 0 else 1 end, sequence desc
                   ) as takeme
) foo
where takeme = 1

Upvotes: 3

Related Questions