malko pomoht za SQL

4 отговора 206 прегледа
#1

malko pomoht za SQL

Zdraveite , piha edna programka i nehto ne sym siguren kak raboti to4no edin select , za tova se nadqvam nqkoi ot vas da mi pomogne.
Bazata e Oracle , no tova edva li ima nqkakvo zna4enie , i taka selecta e sledniq:

***********************************************************
select telement,sime,sum(sts_st),sum(tk_vo1),count(distinct tnomosn)
from sk_trans t,sk_stoki s
where t.telement = s.skod and to_char(tDatTrans,'YYYYMMDD') > 20030801 and
to_char(tDatTrans,'YYYYMMDD') < 20030831 and rownum <= 10
group by telement,sime
order by 3 desc
************************************************************
Opitvam se da izvadq samo pyrvite 10 reda ot rezultata na zaqvkata , no mai tova ne stava to4no taka. Interesuvame ograni4enieto "rownum <= 10" , wyrxu koi zapisi se prilaga , wyrxu pyrvata ili vtorata tablica ili vyrxu rezultata na ot Joinvaneto na tablicite , a moje bi wyrxu krainiq rezlutat sled grup by i Order by , koeto e moqta cel , ama mai ne stava : )

hte se radvam ako nqkoi spec se proiznese , s podrobno obqsnenie

Отговор
в отговор на FidoDido #2

Re: malko pomoht za SQL

Използвай DESC LIMIT
например SELECT * FROM `tbl` ORDER BY id DESC LIMIT 0, 10
0-та показва от кой запис да започне заявката а 10 колко записа да изкара на екрана

Break The UnBreakable
Отговор
в отговор на FidoDido #3

Re: malko pomoht za SQL

Ако ти си го написал - кажи каква ти е идеята
Ако си го заварил такъв - не е верен (най-малкото order by се изпълнява след rownum и за да го направиш, трябва да селекта да го изкараш във фром-а като таблица)
т.е. select * from (този select ... order by ...) where rownum <=10

иначе като разяснение - за всеки 2 елемента телемент и симе (отговарящи на условието), се сумират всички стс_ст и тк_во1 и се броят различните тномосн (каквото и да значат колоните :))
та явно целта е да се вземат първите 10, но от подредените по 3 колона наобратно

Отговор
в отговор на nupaT #4

Re: malko pomoht za SQL

ти май не четеш човека кво обяснява....
базата е Оракъл, лимит 0,10 няма

Отговор
в отговор на AcidMemory #5

Re: malko pomoht za SQL

: )
perfektno znam kak deistva toq select htoto az go mislix
..prosto ne znaex kak to4no ba4ka rownum , ama opravixme polojenieto

Отговор