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
 Sequence

Author  Topic 

Clas
Starting Member

33 Posts

Posted - 2009-04-01 : 08:40:15
When there is an CHANGE in value, compare to previos row --> new seq number
Same value can occur in later date, so I can not group on values



Create table #temp
(
EventDate datetime,
Value int,
sequence int
)
insert into #temp values('1925-02-02' , 25 , 0)
insert into #temp values('1927-03-03' , 25 , 0)
insert into #temp values('1931-04-04' , 100 , 0)
insert into #temp values('1931-05-05' , 100 , 0)
insert into #temp values('1935-08-09' , 100 , 0)
insert into #temp values('1945-02-03' , 25 , 0)
insert into #temp values('1950-03-08' , 25 , 0)
insert into #temp values('1951-07-08' , 26 , 0)

select * from #temp


/**
Update #temp sequence , order by eventdate

RESULT:

1925-02-02 , 25 seq:1
1927-03-03 , 25 seq:1

1931-04-04 , 100 seq:2
1931-05-05 , 100 seq:2
1935-08-09 , 100 seq:2

1945-02-03 , 25 seq:3
1950-03-08 , 25 seq:3

1951-07-08 , 26 seq:4

THANKS !
**/

darkdusky
Aged Yak Warrior

591 Posts

Posted - 2009-04-01 : 09:49:44
Can you rephrase "When there is an CHANGE in value, compare to previos row --> new seq number
Same value can occur in later date, so I can not group on values"
I don't understand your meaning.
Go to Top of Page

madhivanan
Premature Yak Congratulator

22864 Posts

Posted - 2009-04-01 : 09:54:16
Here is one way
declare @temp table 
(
EventDate datetime,
Value int,
sequence int
)
insert into @temp values('1925-02-02' , 25 , 0)
insert into @temp values('1927-03-03' , 25 , 0)
insert into @temp values('1931-04-04' , 100 , 0)
insert into @temp values('1931-05-05' , 100 , 0)
insert into @temp values('1935-08-09' , 100 , 0)
insert into @temp values('1945-02-03' , 25 , 0)
insert into @temp values('1950-03-08' , 25 , 0)
insert into @temp values('1951-07-08' , 26 , 0)

declare @value int,@sequence int
set @sequence=0
update @temp
set sequence=case when @value=value then @sequence else sequence end,
@sequence=case when @value=value then @sequence else @sequence+1 end,@value=value

select * from @temp


Madhivanan

Failing to plan is Planning to fail
Go to Top of Page
   

- Advertisement -