Преобразование запроса SQL server 2012 в SQL 2008
У меня есть приведенный ниже запрос, который отлично работает в 2012 году, так как он использует функции 2012 года. Может ли кто-нибудь заставить точно такой же запрос работать в 2008 году с таким же выходом?
declare @Buckets table (ID char(2), FullCapacity int) declare @Filler table (ID char(2), Filler int) insert into @Buckets values ('B1', 100), ('B2', 50), ('B3', 70) insert into @Filler values ('F1', 90), ('F2', 70), ('F3', 40), ('F4', 20) ;with fillerCte as ( select ID, Filler, sum(Filler) over (order by ID) as TotalFill from @Filler ), BucketCte as ( select ID, FullCapacity, sum(FullCapacity) over (order by ID) - FullCapacity as RunningTotalCapacity from @Buckets ) select b.ID, b.FullCapacity, case when f.TotalFill < b.RunningTotalCapacity then 0 when f.TotalFill > b.RunningTotalCapacity + b.FullCapacity then b.FullCapacity else f.TotalFill - b.RunningTotalCapacity end as CurrentAmount from fillerCte as f cross join BucketCte as b order by f.ID, b.ID
Что я уже пробовал:
declare @Buckets table (ID char(2), FullCapacity int) declare @Filler table (ID char(2), Filler int) insert into @Buckets values ('B1', 100), ('B2', 50), ('B3', 70) insert into @Filler values ('F1', 90), ('F2', 70), ('F3', 40), ('F4', 20) ;with fillerCte as ( select ID, Filler, sum(Filler) over (order by ID) as TotalFill from @Filler ), BucketCte as ( select ID, FullCapacity, sum(FullCapacity) over (order by ID) - FullCapacity as RunningTotalCapacity from @Buckets ) select b.ID, b.FullCapacity, case when f.TotalFill < b.RunningTotalCapacity then 0 when f.TotalFill > b.RunningTotalCapacity + b.FullCapacity then b.FullCapacity else f.TotalFill - b.RunningTotalCapacity end as CurrentAmount from fillerCte as f cross join BucketCte as b order by f.ID, b.ID
Herman<T>.Instance
В чем именно заключается проблема?
ashishkumarrai
Я получаю ошибку при выполнении его в SQL 2008.Параллельное хранилище данных (упаковки) не включена
ashishkumarrai
выход, который я ищу.
ID | FullCapacity | CurrentAmount
---+--------------+--------------
B1 / 100 / 90
B2 / 50 / 0
B3 / 70 / 0
---+--------------+--------------
B1 / 100 / 100
B2 / 50 / 50
B3 / 70 / 10
---+--------------+--------------
B1 / 100 / 100
B2 / 50 / 50
B3 / 70 / 50
---+--------------+--------------
B1 / 100 / 100
B2 / 50 / 50
B3 / 70 / 70