DevProTalk

Forumi IT profesionalaca
web development, web design, e-business, SEO


Idite nazad   DevProTalk > Web development i web aplikacije > SQL baze podataka - Sponzor: Baze-Podataka.net
Želite da se reklamirate ekskluzivno na ovoj poziciji? Javite se

SQL baze podataka - Sponzor: Baze-Podataka.net MySQL, MSSQL, Oracle, Access, ODBC. Ako imate problem brže i preciznije ćete dobiti odgovor ako priložite strukturu tabela ili skript koji kreira tabele i puni ih test podacima umesto što to problem opisujete samo rečima. Sponzor: Baze-Podataka.net - Blog o bazama podataka

Odgovori
 
Alati teme Način prikaza
Staro 18. 08. 2008.   #1
tokajac
član
Na probnom radu
 
Datum učlanjenja: 21.05.2007
Poruke: 30
Hvala: 0
0 "Hvala" u 0 poruka
tokajac is on a distinguished road
Pošaljite poruku preko Skype™ za tokajac
Default Fetch First 20 Rows Only

Koristim bazu AS400, DB2

U jednoj tabeli imam 1000 n-torki.
Hocu da iscitam po 10 n-torki odjednom i da ih postavim na stranicu.

Nasao sam primer za to na:
http://www.ibm.com/developerworks/db...307balani.html

ali radi samo FETCH FIRST 20 ROWS ONLY, primer sa ROW_NEXT BETWEEN 21 and 40 ne radi.

Da li neko ume (i hoce ) da napise jednostavan query koji ce mi omoguciti
npr. ROW_NEXT BETWEEN 21 and 40 ne radi?


Pozdrav
tokajac je offline   Odgovorite uz citat
Staro 18. 08. 2008.   #2
japan
novi klan
Professional
 
Avatar japan
 
Datum učlanjenja: 03.02.2007
Poruke: 326
Hvala: 43
427 "Hvala" u 50 poruka
japan će postati "faca" uskorojapan će postati "faca" uskorojapan će postati "faca" uskorojapan će postati "faca" uskorojapan će postati "faca" uskoro
Default

sta tacno ne radi?

daj upit koji si probao i gresku koju dobijas.
__________________
We professional we dealin' with business
japan je offline   Odgovorite uz citat
Staro 18. 08. 2008.   #3
tokajac
član
Na probnom radu
 
Datum učlanjenja: 21.05.2007
Poruke: 30
Hvala: 0
0 "Hvala" u 0 poruka
tokajac is on a distinguished road
Pošaljite poruku preko Skype™ za tokajac
Default

Evo primera:

Kôd:
SELECT * FROM (
  SELECT booking_id    
    rownumber() OVER
     (ORDER BY booking_id)
     AS ROW_NEXT 
    FROM bookings 
  )
AS tmp WHERE 
ROW_NEXT BETWEEN 21 and 40

Kôd:
[SQL0104] Token ( was not valid. Valid tokens: , FROM INTO. Cause.....:A syntax error was detected at token (.

Pozdrav
tokajac je offline   Odgovorite uz citat
Staro 19. 08. 2008.   #4
japan
novi klan
Professional
 
Avatar japan
 
Datum učlanjenja: 03.02.2007
Poruke: 326
Hvala: 43
427 "Hvala" u 50 poruka
japan će postati "faca" uskorojapan će postati "faca" uskorojapan će postati "faca" uskorojapan će postati "faca" uskorojapan će postati "faca" uskoro
Default

mislim da je funkcija row_number() a ne rownumber()

Kôd:
SELECT * FROM (
  SELECT booking_id, row_number() OVER (ORDER BY booking_id) AS ROW_NEXT 
    FROM bookings 
  ) AS tmp 
WHERE ROW_NEXT BETWEEN 21 and 40
__________________
We professional we dealin' with business

Poslednja izmena od japan : 19. 08. 2008. u 12:54.
japan je offline   Odgovorite uz citat
Staro 19. 08. 2008.   #5
tokajac
član
Na probnom radu
 
Datum učlanjenja: 21.05.2007
Poruke: 30
Hvala: 0
0 "Hvala" u 0 poruka
tokajac is on a distinguished road
Pošaljite poruku preko Skype™ za tokajac
Default

Hvala na odgovoru japan!


Ne radi row_number().

Bicu izuzetno zahvalan svakom ko zna da mi da bilo kakav koristan hint za resavanje ovog query-ja (moze i na private message).

Verujem da je potreba za ovakvim upitima chesta.
Zasada sam prokljuvio za MS SQL nesto ovako:
Kôd:
SELECT TOP 20 * FROM (SELECT TOP 40 * FROM YourTable ORDER BY PKCol)t ORDER BY PKCol DESC
(Meni treba za AS400, DB2)

Kako ce ovo resenje raditi kada upit ima 6 JOIN-a?

FETCH FIRST 20 ROWS ONLY radi super, pa se pitam zasto nema i za ostale redove slicno, jednostavno resenje...


Pozdrav
tokajac je offline   Odgovorite uz citat
Staro 20. 08. 2008.   #6
Dejan Topalovic
old school
Professional
 
Datum učlanjenja: 15.02.2006
Lokacija: Wien, Austria
Poruke: 304
Hvala: 121
47 "Hvala" u 26 poruka
Dejan Topalovic će postati "faca" uskoro
Pošaljite poruku preko MSN za Dejan Topalovic
Default

Citat:
Originalno napisao tokajac Pogledajte poruku
Evo primera:

Kôd:
SELECT * FROM (
  SELECT booking_id    
    rownumber() OVER
     (ORDER BY booking_id)
     AS ROW_NEXT 
    FROM bookings 
  )
AS tmp WHERE 
ROW_NEXT BETWEEN 21 and 40

Kôd:
[SQL0104] Token ( was not valid. Valid tokens: , FROM INTO. Cause.....:A syntax error was detected at token (.
Pozdrav
Koliko ja vidim, tebi fali zarez iza "SELECT booking_id".
Znaci: ... SELECT booking_id, rownumber() ...

Javi je l' do zareza.
__________________
Blog: Baze podataka
------------------------
Oracle OCP DBA
Oracle OCE SQL Expert
Oracle OCP Developer
Certified MySQL DBA
Dejan Topalovic je offline   Odgovorite uz citat
Staro 21. 08. 2008.   #7
tokajac
član
Na probnom radu
 
Datum učlanjenja: 21.05.2007
Poruke: 30
Hvala: 0
0 "Hvala" u 0 poruka
tokajac is on a distinguished road
Pošaljite poruku preko Skype™ za tokajac
Default

Nije do zareza.

Hvala na ispravci. Izvinjavam se na sintaxnoj gresci.
Potraga i dalje traje. Ukoliko imate ideje, molim vas da javite.


Pozdrav
tokajac je offline   Odgovorite uz citat
Staro 25. 08. 2008.   #8
tokajac
član
Na probnom radu
 
Datum učlanjenja: 21.05.2007
Poruke: 30
Hvala: 0
0 "Hvala" u 0 poruka
tokajac is on a distinguished road
Pošaljite poruku preko Skype™ za tokajac
Default

Sta kazete za ovako nesto?

Kôd:
        SELECT   *
        FROM 
        (
             SELECT * FROM 
            BFWBBBKS b
            left outer join BFWBBCLS c on b.COLID=c.COLID 
            left outer join BFWBBCLA ca on ca.COLADRID=b.COLADRID        
            left outer join BFWBBCTP ct on ct.CARTPID = b.CARTPID
            left outer join BFWBBCAR car on car.CARID =b.CARID
            left outer join BFWBBSTS bs on bs.BOOKSTSID = b.BOOKSTSID
            left outer join BFWBBUSR cu on CAST(b.CRTUSRID AS INTEGER) = cu.WBBUSERID
                  left outer join BFWBBUSR uu on CAST(b.UPDBUSRID AS INTEGER) = uu.WBBUSERID
            order by b.WBBBOOKID
            FETCH FIRST 20 ROWS ONLY 
        ) AS bo
                order by WBBBOOKID desc
        FETCH FIRST 20 ROWS ONLY
Kontam da je cool za prve stranice, ali sta se dogadja kod iscitavanja poslednje stranice ukoliko imam preko 1000 redova?


Pozdrav
tokajac je offline   Odgovorite uz citat
Staro 25. 08. 2008.   #9
bluesman
Goran Pilipović
Sir Write-a-Lot
 
Avatar bluesman
 
Datum učlanjenja: 18.05.2005
Lokacija: Beograd
Poruke: 5.450
Hvala: 288
1.247 "Hvala" u 446 poruka
bluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušati
Pošaljite ICQ poruku za bluesman
Default

Izvinjavam se sto ne citam pazljivo, ali kada vidim ovakav query - nemam ni zelju. Po meni sve sto ima vise od 2 join-a, pokazuje da treba popraviti strukturu baze ili uvesti nove tabele.
__________________
Goran Pilipović a.k.a. Ugly Fingers Bradley f.k.a. bluesman
I don't always know what I'm talking about but I know I'm right!
bluesman je offline   Odgovorite uz citat
Staro 25. 08. 2008.   #10
tokajac
član
Na probnom radu
 
Datum učlanjenja: 21.05.2007
Poruke: 30
Hvala: 0
0 "Hvala" u 0 poruka
tokajac is on a distinguished road
Pošaljite poruku preko Skype™ za tokajac
Default

Bazu za ovu aplikaciju nisam ja projektovao tako da treba da se zadrzim(o) na sastavljanju upita.

Sve korisne ideje su dobrodosle!


Pozdrav
tokajac je offline   Odgovorite uz citat
Odgovori


Alati teme
Način prikaza

Pravila pisanja
Možete ne započinjati nove teme
Možete ne slati odgovore
Možete ne slati priloge
Možete ne izmeniti svoje poruke
vB kôd je Uključen
Smajliji su Uključen
[IMG] kod je Uključen
HTML kôd je Isključen
Pogledajte forum

Slične teme
Tema Početna poruka teme Forum Odgovori Poslednja poruka
Parent - child fetch problem cvele SQL baze podataka - Sponzor: Baze-Podataka.net 13 01. 10. 2008. 16:08


Vreme je GMT +2. Trenutno vreme je 20:50.


Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.
Mišljenja, saveti, izjave, ponude ili druge informacije ili sadržaji nastali na Sajtu su vlasništvo onoga ko ih je kreirao, a ne DevProTalk.com, tako da ne morate da se oslanjate na njih.
Autori poruka su jedini odgovorni za ovakve sadržaje. DevProTalk.com ne garantuje tačnost, kompletnost ili upotrebnu vrednost informacija, stavova, saveta ili datih izjava. Ne postoje uslovi pod kojima bi mi bili odgovorni za štetu ili gubitak koji je posledica bilo čijeg oslanjanja na nepouzdane informacije, ili bilo kakve informacije nastale kroz komunikaciju između registrovanih članova.
Web sajt može sadržavati linkove na druge web sajtove na Internetu ili neke druge sadržaje. Ne kontrolišemo niti podržavamo te druge web sajtove, niti smo pregledali bilo kakve sadržaje na takvim sajtovima. Mi nećemo biti odgovorni za legalnost, tačnost ili prikladnost bilo kog sadržaja, oglasa, proizvoda, usluga ili informacije lociranim na ili distribuiranih kroz druge web sajtove, niti za bilo kakvu štetu nastalu kao posledica takvih informacija. DevProTalk.com drži i čuva druga prava vlasništva na web sajtu. Web sajt sadrže materijale zaštićene copyright-om, zaštitne znakove i druge informacije o pravu vlasništva ili softver. Članovi mogu poslatu informacije zaštićene pravima vlasništva njihovih nosilaca i ona ostaju zaštićena bez obzira da li su oni koji prenose te informacije to naveli ili ne. Osim informacija koje su u javnom vlasništvu ili za koje dobijete dozvolu, nemate pravo da kopirate, modifikujete ili na bilo koji način menjate, objavljujete, prenosite, distribuirate, izvršavate, prikazujete ili prodajte bilo koju informaciju zaštićenu pravima vlasništva. Slanjem informacija ili sadržaja na bilo koji deo DevProTalk.com, Vi automatski dozvoljavate i predstavljate garanciju da imate pravo da dozvolite DevProTalk.com ili članovima DevProTalk.com bespovratnu, kontinualnu, neograničenu, globalnu dozvolu da koriste, kopiraju, izvršavaju, prikazuju i distribuiraju takve informacije i sadržaje i da iz takvih sadžaja koriste bilo koji deo u bilo koje svrhe, kao i pravo i dozvolu da koriste gore navedene sadržaje. Svi zaštitni znakovi (trademarks), logotipi, oznake usluga, firme ili imena proizvoda koji se pominju na ovom web sajtu su vlasništvo kojim raspolažu njihovi vlasnici.