[COLOR=green]----- Preparing test data, you don't need this
[/color][COLOR=blue]DECLARE[/color] @Test [COLOR=blue]TABLE[/color] (Id [COLOR=blue]int[/color], op [COLOR=blue]varchar[/color](20))
[COLOR=blue]INSERT[/color] [COLOR=blue]INTO[/color] @Test [COLOR=blue]VALUES[/color](1,[COLOR=red]'soft'[/color])
[COLOR=blue]INSERT[/color] [COLOR=blue]INTO[/color] @Test [COLOR=blue]VALUES[/color](2,[COLOR=red]'soft'[/color])
[COLOR=blue]INSERT[/color] [COLOR=blue]INTO[/color] @Test [COLOR=blue]VALUES[/color](3,[COLOR=red]'vendor'[/color])
[COLOR=blue]INSERT[/color] [COLOR=blue]INTO[/color] @Test [COLOR=blue]VALUES[/color](4,[COLOR=red]'soft'[/color])
[COLOR=blue]INSERT[/color] [COLOR=blue]INTO[/color] @Test [COLOR=blue]VALUES[/color](5,[COLOR=red]'soft'[/color])
[COLOR=blue]INSERT[/color] [COLOR=blue]INTO[/color] @Test [COLOR=blue]VALUES[/color](6,[COLOR=red]'soft'[/color])
[COLOR=blue]INSERT[/color] [COLOR=blue]INTO[/color] @Test [COLOR=blue]VALUES[/color](7,[COLOR=red]'heattreat'[/color])
[COLOR=blue]INSERT[/color] [COLOR=blue]INTO[/color] @Test [COLOR=blue]VALUES[/color](8,[COLOR=red]'vendor'[/color])
[COLOR=blue]INSERT[/color] [COLOR=blue]INTO[/color] @Test [COLOR=blue]VALUES[/color](9,[COLOR=red]'hard'[/color])
[COLOR=blue]INSERT[/color] [COLOR=blue]INTO[/color] @Test [COLOR=blue]VALUES[/color](10,[COLOR=red]'hard'[/color])
[COLOR=blue]INSERT[/color] [COLOR=blue]INTO[/color] @Test [COLOR=blue]VALUES[/color](11,[COLOR=red]'hard'[/color])
[COLOR=blue]DECLARE[/color] @Resources [COLOR=blue]TABLE[/color] (op [COLOR=blue]varchar[/color](20), OpNo [COLOR=blue]int[/color], DaysTaken [COLOR=blue]int[/color])
[COLOR=blue]INSERT[/color] [COLOR=blue]INTO[/color] @Resources [COLOR=blue]VALUES[/color]([COLOR=red]'soft'[/color],1,2)
[COLOR=blue]INSERT[/color] [COLOR=blue]INTO[/color] @Resources [COLOR=blue]VALUES[/color]([COLOR=red]'soft'[/color],2,4)
[COLOR=blue]INSERT[/color] [COLOR=blue]INTO[/color] @Resources [COLOR=blue]VALUES[/color]([COLOR=red]'soft'[/color],3,10)
[COLOR=blue]INSERT[/color] [COLOR=blue]INTO[/color] @Resources [COLOR=blue]VALUES[/color]([COLOR=red]'soft'[/color],4,10)
[COLOR=blue]INSERT[/color] [COLOR=blue]INTO[/color] @Resources [COLOR=blue]VALUES[/color]([COLOR=red]'vendor'[/color],1,7)
[COLOR=blue]INSERT[/color] [COLOR=blue]INTO[/color] @Resources [COLOR=blue]VALUES[/color]([COLOR=red]'vendor'[/color],2,10)
[COLOR=blue]INSERT[/color] [COLOR=blue]INTO[/color] @Resources [COLOR=blue]VALUES[/color]([COLOR=red]'heattreat'[/color],1,5)
[COLOR=blue]INSERT[/color] [COLOR=blue]INTO[/color] @Resources [COLOR=blue]VALUES[/color]([COLOR=red]'hard'[/color],1,2)
[COLOR=blue]INSERT[/color] [COLOR=blue]INTO[/color] @Resources [COLOR=blue]VALUES[/color]([COLOR=red]'hard'[/color],2,5)
[COLOR=blue]INSERT[/color] [COLOR=blue]INTO[/color] @Resources [COLOR=blue]VALUES[/color]([COLOR=red]'hard'[/color],3,9)
[COLOR=blue]INSERT[/color] [COLOR=blue]INTO[/color] @Resources [COLOR=blue]VALUES[/color]([COLOR=red]'hard'[/color],4,13)
[COLOR=green]---- End preparing
[/color]
[COLOR=blue]SELECT[/color] TestFinal.Op,
(Id - [COLOR=#FF00FF]ISNULL[/color](MaxId,0)) [COLOR=blue]AS[/color] OperNumbers,
Rsrs.DaysTaken
[COLOR=blue]FROM[/color] (
[COLOR=blue]SELECT[/color] TestMe.*,
([COLOR=blue]SELECT[/color] [COLOR=#FF00FF]MAX[/color](Id)
[COLOR=blue]FROM[/color] ([COLOR=blue]SELECT[/color] Tst.*
[COLOR=blue]FROM[/color] @Test Tst
[COLOR=#FF00FF]LEFT[/color] [COLOR=blue]JOIN[/color] @Test tst1 [COLOR=blue]ON[/color] Tst1.Id = tst.Id+1 AND Tst.op = tst1.op
[COLOR=blue]WHERE[/color] tst1.Id [COLOR=blue]IS[/color] NULL AND
Tst.Id < TestMe.Id) tsts) [COLOR=blue]AS[/color] MaxId
[COLOR=blue]FROM[/color] @Test TestMe
[COLOR=#FF00FF]LEFT[/color] [COLOR=blue]JOIN[/color] @Test tst1 [COLOR=blue]ON[/color] Tst1.Id = TestMe.Id+1 AND TestMe.op = tst1.op
[COLOR=blue]WHERE[/color] tst1.Id [COLOR=blue]IS[/color] NULL
) TestFinal
[COLOR=blue]INNER[/color] [COLOR=blue]JOIN[/color] @Resources Rsrs [COLOR=blue]ON[/color]
TestFinal.op = Rsrs.Op AND Rsrs.OpNo = (TestFinal.Id - [COLOR=#FF00FF]ISNULL[/color](TestFinal.MaxId,0))