Cześć
mam tabele z uczniami w której mam imie, nazwisko, klasa, wiek
jak pobrać pierwszych x uczniów, których suma wieku jest równa np 50?
Cześć
mam tabele z uczniami w której mam imie, nazwisko, klasa, wiek
jak pobrać pierwszych x uczniów, których suma wieku jest równa np 50?
Którzy uczniowie są pierwsi
?
No wiem, mój błąd, nieprecyzykna nazwa. Chodzi mi o to ze mamy uczniow posortowanych po dowolnej kolumnie i chodzilo mi o x uczniow w wybranej kolejnosci sortowania
LIMIT X
Która edycja sql servera? Co w sytuacji kiedy, żadna suma nie da 50?
select z tego https://stackoverflow.com/questions/2120544/how-to-get-cumulative-sum plus warunek na sumę <= wartość
To co mi przychodzi do głowy to użyć pętli, albo czegoś podobnego do pętli. W T-SQL jest pętla while
SqlServer 2012/2014.
W przypadku braku sumy, nie zwracamy nic
Mozna tak:
with cRS as (
select *, sum(wiek) over (order by nazwisko) rs from u
)
select * from cRS where rs <= 55 and exists(select * from cRS where rs = 55)
http://sqlfiddle.com/#!6/cd313/2
55 bo taką sumę mam w przykładowych danych