Anonymní profil cardicek – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil cardicek – Programujte.comAnonymní profil cardicek – Programujte.com

 

Příspěvky odeslané z IP adresy 89.111.104.–

cardicek
MS SQL › výběr nejnovějších 5 záznamů…
15. 8. 2018   #381259

#4 MilanL
Ahoj, díky všem za pomoc, přes ten OVER to asi půjde. Zatím jsem to musel vyřešit jinak, protože dotaz musí být i pro Firebird, ale zatím máme verzi 2,5 a ta OVER() nepodporuje, tedy po upgradu na Firebird 3 to vyzkouším a zaktualizuji vlákno, pokud to ještě půjde.

Ještě jednou všem díky za pomoc.

cardicek
MS SQL › výběr nejnovějších 5 záznamů…
13. 8. 2018   #381216

Ahoj, mám tabulku szasoby, která obsahuje pro různý "cmat" několik záznamů s cenou skladu a potřeboval bych z této tabulky vybrat 5 nejnovějších řádků (datum_pos_prijmu), vypočítat průměr, průměr bez max min(v případě, že bude počet řádků > 3) sloučený pro jednotlivé cmat záznamy.

select cmat, avg(sklad_cenamj) as prumer,
iif(count(*)>=3,(sum(sklad_cenamj)-max(sklad_cenamj)-min(sklad_cenamj))/(count(*)-2),avg(sklad_cenamj)) as prumerBezMM, max(datum_pos_prijmu)
 from (select c.cmat, c.sklad_cenamj,c.datum_pos_prijmu from szasoby c order by datum_pos_prijmu desc) d  group by cmat

Tento příkaz funguje, ale pokud má nějaký cmat např 8 řádků, vypočítá to ze všech řádků. Jakákoliv snaha o top 5 nebo něco podobného vyhodí jen 5 jednotlivých součtů cmat.

Pro mě to má smysl jen v rovině sql příkazu, přes proceduru by to šlo, ale pro mě nepoužitelné.

Díky za pomoc

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032021 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý