SQL - Как да умножим ред в зависимост от стойноста на някое поле.

Posted by Stanislav Nedelchev on Fri, 04/10/2009 - 10:06

Първо ще покажа няколко примера с които можете да създадете подредена редица от номера.
Те са нужни за примера след това.
Ето и кода:

select row_number() OVER (order by cislo_subjektu) as num from lcs.kmenova_karta_skladu


select top 100
(select count(ss.cislo_subjektu) from lcs.kmenova_karta_skladu ss
where s.cislo_subjektu >= ss.cislo_subjektu)
as number
from lcs.kmenova_karta_skladu s

И финалния код :

select cislo_subjektu,reference_subjektu from lcs.product_order po
-- Този код може да се смени с един от двата начина показани по горе
-- Може да полвате и таблица в която има уникално поле със стойности 1,2,3 и т.н
inner join (select top 100
(select count(ss.cislo_subjektu) from lcs.kmenova_karta_skladu ss
where s.cislo_subjektu >= ss.cislo_subjektu)
as number
from lcs.kmenova_karta_skladu s
order by s.cislo_subjektu) n on ( n.number <= po.qty)
-- Заменя се до буквата n
where cislo_subjektu = '1919067'

Резултата от цялата операция би трябвало да е следния.

име_на_колона | брой
Ime1 2

Резултат
Ime1 | 2
Ime1 | 2

От един ред получаваме 2 ако бройката е 5 ще получим 5 реда и т.н

Tags: 

Add new comment

CAPTCHA
This question is for testing whether or not you are a human visitor and to prevent automated spam submissions.