Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Нужна помощь в нумерации строк  [new]
TimRX
Member

Откуда: Алтайский край
Сообщений: 210
Доброго дня.



Есть набор :

id        f1              f2            
1        250,00       34,00 
2        50,00         55,22
3        31,20         31,20
4        49,00         40,00
5        22,00         10,55
6        19,00         19,00
7        62,00         100,00
8        73,01         96,33 
9        101,00       101,00

Необходимо пронумеровать строки в таком порядке

Надо

id        f1              f2                 somefield    
1        250,00       34,00                 1
2        50,00         55,22                 1 
3        31,20         31,20                 2 
4        37,40         37,40                 2  
5        45,03         45,03                 3  
6        49,00         40,00                 3 
7        22,00         10,55                 3
8        19,00         19,00                 4 
9        62,00         100,00               4
10        73,01         96,33                4
11        101,00       101,00               5

т.е если f1=f2 тогда somefield +1
28 июн 11, 10:22    [10884986]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь в нумерации строк  [new]
daw
Member

Откуда: Муром -> Москва
Сообщений: 7381

select
   t.*, (select count(*) from @t t2 where t2.id <= t.id and t2.f1 = t2.f2) + 1
from @t t

Posted via ActualForum NNTP Server 1.4

28 июн 11, 10:35    [10885047]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь в нумерации строк  [new]
Почтальон Печкин
Guest
DECLARE @t table (id INT , f1 float, f2 float )


INSERT INTO @t

SELECT id =1 , f1 = 250.00 , f2 = 34.00
UNION SELECT 2, 50.00 , 55.22
UNION SELECT 3 , 31.20 , 31.20
UNION SELECT 4 , 49.00 , 40.00
UNION SELECT 5 , 22.00 , 10.55
UNION SELECT 6 , 19.00 , 19.00
UNION SELECT 7 , 62.00 , 100.00
UNION SELECT 8 , 73.01 , 96.33
UNION SELECT 9 , 101.00, 101.00



SELECT id,f1,f2, ( SELECT SUM(bingo) +1 FROM (SELECT id,f1,f2, case when f1=f2 THEN 1 ELSE 0 END bingo
FROM @t ) b WHERE b.id <=a.id )res
FROM (
SELECT id,f1,f2, case when f1=f2 THEN 1 ELSE 0 END bingo
FROM @t b
)a
28 июн 11, 10:44    [10885106]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь в нумерации строк  [new]
Почтальон Печкин
Guest
daw
select
   t.*, (select count(*) from @t t2 where t2.id <= t.id and t2.f1 = t2.f2) + 1
from @t t



хорош :)
28 июн 11, 10:45    [10885118]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь в нумерации строк  [new]
TimRX
Member

Откуда: Алтайский край
Сообщений: 210
Спасибо
28 июн 11, 11:03    [10885249]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить