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

Категория:

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

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 реда и т.н

0