[ MarkoBalkan @ 05.10.2010. 18:55 ] @
jeli ovo moguće u firebirdu? |
[ MarkoBalkan @ 05.10.2010. 18:55 ] @
[ abitbp6 @ 05.10.2010. 21:02 ] @
Ne verujem da može upitom. I meni je to trebalo, rešio sam preko SP. Nešto sporije, ali radi.
[ MarkoBalkan @ 05.10.2010. 21:18 ] @
jel možeš staviti tu rješenje?
prepostavljam da ide s cursorom. [ abitbp6 @ 05.10.2010. 23:16 ] @
Velika je procedura, ne mogu da je pošaljem celu. Osnova je ovo:
Code: create procedure PROC() returns ( RX INTEGER, RY INTEGER, RZ INTEGER) as declare variable LX INTEGER; declare variable LY INTEGER; declare variable LZ INTEGER; declare variable LCOUNTER INTEGER; BEGIN // neke pocetne vrednosti LX = -1; LY = -1; LZ = -1; LCOUNTER = 0; FOR SELECT X, Y, Z FROM TABLE ORDER BY 1, 2, 3 INTO :RX, :RY, :RZ DO BEGIN // ovako detektujem promenu grupe IF ((RX <> LX) OR (RY <> LY)) THEN BEGIN LCOUNTER = 0; END // uzimam po 5 iz svake grupe IF (LCOUNTER < 5) THEN BEGIN LCOUNTER = LCOUNTER + 1; SUSPEND; END // Ovo je potrebno za detekciju promene grupe LX = :RX; LY = :RY; END END [ franjo_tahi @ 06.10.2010. 10:01 ] @
Ako misliš first, može:
select first 10 tablica.field from tablica [ MarkoBalkan @ 06.10.2010. 15:06 ] @
Citat: sorry, ali ne radi se o ovome. nego o query-u koji vraća top x iz svake grupe. recimo: imamo tablice: sport, natjecatelj, rezultati(ovo je vezna). potrebno je prikazati podatke za topp 4 najbolja atletičara za svaki sport. našao sam i jedan drugi način. ovo je samo primjer SELECT id,A FROM new_table WHERE ( SELECT COUNT(*) FROM new_table f WHERE f.id = NEW_TABLE.id AND f.a<new_table.a ) <= 1; kad se stavi 0, vraća top 1 iz svake grupe, kad se stavi jedan vraća top 2 itd... [ schild @ 06.10.2010. 15:38 ] @
Mozda ovako nesto:
WITH PRIPREMA AS ( SELECT N.ID, S.ID, SUM(RESULTATI) RESULT FROM NATJECATELJI N INNER JOIN REZULTATI R ON (...) INNER JOIN SPORT S ON (...) GROUP BY 1,2 ) SELECT FIRST 4 N.* FROM PRIPREMA P INNER JOIN NATJECACELJI N ON (...) WHERE ... ORDER BY P.RESULT DESC Za detalje pogledajte README.common_table_expressions.txt u doc folderu od FB 2.5 [ MarkoBalkan @ 06.10.2010. 16:26 ] @
ovaj query što sam stavio radi ok.
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|