Forum Sveta kompjutera

Nazad   Forum Sveta kompjutera > Test Run > Programiranje
Uputstvo Članstvo Kalendar Današnje poruke Pretraži

Programiranje Programski jezici, tehnike, alatke...

Odgovor
 
Alatke vezane za temu Vrste prikaza
Stara 23.9.2009, 10:54   #1
pixel
Član
 
Član od: 19.1.2009.
Poruke: 133
Zahvalnice: 13
Zahvaljeno 17 puta na 13 poruka
Question SQL upiti - neke nedoumice

Pozz!

Da li neko može da mi pomogne oko sledećeg SQL upita.

Imam tabelu u kojoj se nalaze polja JMBG Učenika, Ime učenika, Šifra odeljenja, Prosek učenika.

Treba mi takav SQL upit koji će mi prikazati [Ime učenika] i [Prosek učenika] sa najmanjim prosekom u odeljenju V1.

Any ideas?

Hvala unapred.
pixel je offline   Odgovor sa citatom ove poruke
Stara 23.9.2009, 11:11   #2
EclipsE
Starosedelac
 
Član od: 16.4.2006.
Lokacija: Scary Movie Reputacija: ■■□
Poruke: 1.337
Zahvalnice: 378
Zahvaljeno 279 puta na 196 poruka
Slanje poruke preko Skypea korisniku EclipsE
Određen forumom Re: SQL Upiti-neke nedoumice

SELECT ime, prosek FROM imetabele WHERE odeljenje = "V1" ORDER BY prosek ASC LIMIT 1
EclipsE je offline   Odgovor sa citatom ove poruke
Stara 23.9.2009, 11:12   #3
jare25
Član
 
Član od: 9.3.2009.
Lokacija: Podgorica
Poruke: 164
Zahvalnice: 27
Zahvaljeno 8 puta na 5 poruka
Slanje poruke preko Skypea korisniku jare25
Određen forumom Re: SQL Upiti-neke nedoumice

Citat:
pixel kaže: Pregled poruke
Pozz!

Da li neko može da mi pomogne oko sledećeg SQL upita.

Imam tabelu u kojoj se nalaze polja JMBG Učenika, Ime učenika, Šifra odeljenja, Prosek učenika.

Treba mi takav SQL upit koji će mi prikazati [Ime učenika] i [Prosek učenika] sa najmanjim prosekom u odeljenju V1.

Any ideas?

Hvala unapred.

SELECT ime, prosek
FROM tabela
WHERE prosek = (SELECT MIN(prosek)
FROM tabela
WHERE sifra_odeljenja = "V1")
AND sifra_odeljenja = "V1" ;

trebalo bi da je ovako.
jare25 je offline   Odgovor sa citatom ove poruke
Stara 23.9.2009, 12:12   #4
holodoc
Deo inventara foruma
 
Član od: 5.12.2005.
Poruke: 6.785
Zahvalnice: 348
Zahvaljeno 1.893 puta na 1.078 poruka
Određen forumom Re: SQL Upiti-neke nedoumice

Nema potrebe da se koriste skupi podupiti (subqueries) u ovom slučaju kada rešenje koje je dao EclipsE u potpunosti zadovoljava kriterijume autora teme.

Usput, ovo baš i nisu nedoumice već osnova SQLa
holodoc je offline   Odgovor sa citatom ove poruke
Stara 23.9.2009, 12:19   #5
jare25
Član
 
Član od: 9.3.2009.
Lokacija: Podgorica
Poruke: 164
Zahvalnice: 27
Zahvaljeno 8 puta na 5 poruka
Slanje poruke preko Skypea korisniku jare25
Određen forumom Re: SQL Upiti-neke nedoumice


Nisam napisao sql upit 3 godine, tako da se nemoj chudit. A odgovor smo pisali istovremeno,da sam vidio njegov ne bih ja pisao. Al eto i ja se podsjetih malo sql-a.
jare25 je offline   Odgovor sa citatom ove poruke
Stara 23.9.2009, 12:28   #6
pixel
Član
 
Član od: 19.1.2009.
Poruke: 133
Zahvalnice: 13
Zahvaljeno 17 puta na 13 poruka
Određen forumom Re: SQL Upiti-neke nedoumice

Osnove mi i trebaju. Zaboravio sam da kažem da mi ti upiti trebaju za Access (ako to uopšte ima veze). Pokušao sam eclipse-ov model i na žalost mi izbacuje sledeću poruku: "Syntax error (missing operator) in query expression 'prosek LIMIT 1'. U čemu je stvar?
pixel je offline   Odgovor sa citatom ove poruke
Stara 23.9.2009, 13:07   #7
EclipsE
Starosedelac
 
Član od: 16.4.2006.
Lokacija: Scary Movie Reputacija: ■■□
Poruke: 1.337
Zahvalnice: 378
Zahvaljeno 279 puta na 196 poruka
Slanje poruke preko Skypea korisniku EclipsE
Određen forumom Re: SQL Upiti-neke nedoumice

Citat:
pixel kaže: Pregled poruke
Osnove mi i trebaju. Zaboravio sam da kažem da mi ti upiti trebaju za Access (ako to uopšte ima veze). Pokušao sam eclipse-ov model i na žalost mi izbacuje sledeću poruku: "Syntax error (missing operator) in query expression 'prosek LIMIT 1'. U čemu je stvar?
zar se ne zavrsava sa prosek ASC LIMIT 1 ? ^^
EclipsE je offline   Odgovor sa citatom ove poruke
Stara 23.9.2009, 13:25   #8
holodoc
Deo inventara foruma
 
Član od: 5.12.2005.
Poruke: 6.785
Zahvalnice: 348
Zahvaljeno 1.893 puta na 1.078 poruka
Određen forumom Re: SQL Upiti-neke nedoumice

Citat:
jare25 kaže: Pregled poruke

Nisam napisao sql upit 3 godine, tako da se nemoj chudit. A odgovor smo pisali istovremeno,da sam vidio njegov ne bih ja pisao. Al eto i ja se podsjetih malo sql-a.
Nisam imao nameru da kažem ništa loše Čak podržavam razne ideje i pristupe i ovo što si napisao je potpuno tačno ali u praksi se iz sasvim razumljivih razloga uvek izbegavaju podupiti kada god je to moguće. Razlog za to su performanse i posebno činjenica da se recimo MySQL lošije snalazi sa njime (čitaj to mu je jedna od najvećih boljki). Zato kad god može podupiti se izbegavaju.
Citat:
pixel kaže: Pregled poruke
Osnove mi i trebaju. Zaboravio sam da kažem da mi ti upiti trebaju za Access (ako to uopšte ima veze). Pokušao sam eclipse-ov model i na žalost mi izbacuje sledeću poruku: "Syntax error (missing operator) in query expression 'prosek LIMIT 1'. U čemu je stvar?
Pa SQL je u suštini ništa drugo do jezik za rad sa bazama. Postoji nekoliko različitih standarda SQLa pri čemu se različite verzije softvera razlikuju po tome koji tačno standard podržavaju. Što se tiče Accessa on bi trebalo sasvim ok da "proguta" taj upit ali ako već radiš u njemu upite konstruiši putem "Query" dijalog prozora pošto će oni ipak sami da konstruišu neke specifičnosti ako ih ima. Možeš da probaš da umesto duplih navodnika kod V1 staviš jednostruke mada opet kažem nisam siguran više kako Access prihvata upite (davno beše kad sam poslednji put čačkao po Accessu a MSSQL nisam "palio" skoro )
holodoc je offline   Odgovor sa citatom ove poruke
Stara 23.9.2009, 13:32   #9
iMa_NeKo_PljUgU
Veteran
 
Član od: 18.4.2006.
Lokacija: $question = ( to() ) ? be() : !be();
Poruke: 858
Zahvalnice: 922
Zahvaljeno 620 puta na 195 poruka
Slanje poruke preko MSN-a korisniku iMa_NeKo_PljUgU Slanje poruke preko Skypea korisniku iMa_NeKo_PljUgU
Određen forumom Re: SQL Upiti-neke nedoumice

Problem je u LIMIT-u koji accsess ne podržava.

"SELECT TOP 1 ime, prosek FROM imetabele WHERE odeljenje = 'V1' ORDER BY prosek ASC"
iMa_NeKo_PljUgU je offline   Odgovor sa citatom ove poruke
Sledećih 2 korisnika se zahvaljuje korisniku iMa_NeKo_PljUgU na korisnoj poruci:
holodoc (23.9.2009), pixel (23.9.2009)
Stara 23.9.2009, 13:58   #10
pixel
Član
 
Član od: 19.1.2009.
Poruke: 133
Zahvalnice: 13
Zahvaljeno 17 puta na 13 poruka
Određen forumom Re: SQL Upiti-neke nedoumice

Citat:
EclipsE kaže: Pregled poruke
zar se ne zavrsava sa prosek ASC LIMIT 1 ? ^^
Izvinjavam se. U postu sam izostavio ASC, dok sam ga u samom QUERY prozoru upisao.
Dakle, izgleda da Access ne podržava "LIMIT".

Rešenje koje je postavio iMa_Neko_PljUgU savršeno radi.

Kod:
SELECT TOP 1 ime, prosek 
FROM imetabele 
WHERE odeljenje = 'V1' 
ORDER BY prosek ASC
Najlepše hvala na svim odgovorima!

P.S. Nadam se da neće biti problem ukoliko postavim još neke upite koje nisam uspeo da odradim.
pixel je offline   Odgovor sa citatom ove poruke
Stara 23.9.2009, 14:03   #11
jare25
Član
 
Član od: 9.3.2009.
Lokacija: Podgorica
Poruke: 164
Zahvalnice: 27
Zahvaljeno 8 puta na 5 poruka
Slanje poruke preko Skypea korisniku jare25
Određen forumom Re: SQL Upiti-neke nedoumice

Citat:
pixel kaže: Pregled poruke

P.S. Nadam se da neće biti problem ukoliko postavim još neke upite koje nisam uspeo da odradim.
normalno da nece. taman da i ja malo vjezbam i da poneshto nauchim.

EDIT: molba za ostale da postave i objasnjenje za ORDER BY (TOP 1 i LIMIT 1) naredbu.

ovo je sve shto sam ja uchio na faxu o ORDER BY:

Order by
SELECT * FROM ISPORUKA
ORDER BY S_NO
SELECT * FROM ISPORUKA
ORDER BY S_NO, F_NO
SELECT * FROM ISPORUKA
ORDER BY S_NO ASC, F_NO DESC
SELECT * FROM ISPORUKA
ORDER BY S_NO DESC, F_NO DESC

Chitav jedan slajd. :-)
jare25 je offline   Odgovor sa citatom ove poruke
Stara 23.9.2009, 14:34   #12
holodoc
Deo inventara foruma
 
Član od: 5.12.2005.
Poruke: 6.785
Zahvalnice: 348
Zahvaljeno 1.893 puta na 1.078 poruka
Određen forumom Re: SQL Upiti-neke nedoumice

Citat:
jare25 kaže: Pregled poruke
normalno da nece. taman da i ja malo vjezbam i da poneshto nauchim.

EDIT: molba za ostale da postave i objasnjenje za ORDER BY (TOP 1 i LIMIT 1) naredbu.

ovo je sve shto sam ja uchio na faxu o ORDER BY:

Order by
SELECT * FROM ISPORUKA
ORDER BY S_NO
SELECT * FROM ISPORUKA
ORDER BY S_NO, F_NO
SELECT * FROM ISPORUKA
ORDER BY S_NO ASC, F_NO DESC
SELECT * FROM ISPORUKA
ORDER BY S_NO DESC, F_NO DESC

Chitav jedan slajd. :-)
Iskreno ne znam koliko bi baš bilo pametno prepričavati ono što zaista može veoma detaljno da se nađe u online priručnicima (recimo MySQL manual) ali neke osnovne osobine i smernice verovatno neće da škode. Takođe, SQL je sam po sebi jako intuitivan jezik. Napravljen je bukvalno da kada se pročita upit na engleskom taj upit ima smisla. Primera radi:
Kod:
SELECT TOP 1 ime, prosek FROM imetabele WHERE odeljenje = 'V1' ORDER BY prosek ASC
je poprilično intuitivno
Citat:
engleski kaže:
"SELECT TOP 1 results which include fields ime, presek FROM table imetabele WHERE odeljenje has a value of 'V1' and ORDER all the results BY prosek in an ASCending order."
Citat:
srpski kaže:
Izaberi prvih jedan rezultata koji uključuju polja ime i presek iz tabele imetabele za koje odeljenje ima vrednost V1 i poređaj ih po proseku u rastućem redosledu
I TOP i LIMIT direktiva rade isto sa jednom razlikom što je svaka definisana u zasebnom standardu. Obe se koriste za ograničavanje broja rezultata koje upit daje. Veoma često se koriste kod paginacije u aplikacijama. Recimo svako ko je ikada vršljao po stranicama koje imaju opciju za izlistavanje rezultata tipa od 1 do 19 pa od 20 do 39 itd. može veoma komotno da se kladi da SQL upiti (ako je MySQL u pitanju) na kraju sadrže nešto poput LIMIT 1,20 ili LIMIT 20,20. U LIMITu prvi broj uvek označava od kog zapisa u rezultatu se kreće a drugi broj koliko rezultata počevši od početnog se dodatno uzima.

ORDER BY služi jednostavno da sortira rezultate. Veoma je jednostavna i osim imena polja u tabeli po kome se vrši sortiranje dovoljno (i neophodno) je još samo dodati jednu od dve direktive, ASC za prikaz rezultata u rastućem nizu i DESC za prikaz rezultata u opadajućem nizu.
holodoc je offline   Odgovor sa citatom ove poruke
Sledeći korisnik se zahvaljuje korisniku holodoc na korisnoj poruci:
jare25 (23.9.2009)
Stara 23.9.2009, 15:15   #13
Danijela1
Član
 
Član od: 11.6.2009.
Lokacija: Beograd
Poruke: 273
Zahvalnice: 51
Zahvaljeno 24 puta na 21 poruka
Slanje poruke preko MSN-a korisniku Danijela1
Određen forumom Re: SQL Upiti-neke nedoumice

Mozes slobodno pitati sta ti treba, meni je zao sto sam tek sada videla tvoje pitanje.. ja sam polagala baze podataka na dva fakulteta tako da ne brini, uvek cemo nadam se naci resenje.
Danijela1 je offline   Odgovor sa citatom ove poruke
Stara 23.9.2009, 15:29   #14
jare25
Član
 
Član od: 9.3.2009.
Lokacija: Podgorica
Poruke: 164
Zahvalnice: 27
Zahvaljeno 8 puta na 5 poruka
Slanje poruke preko Skypea korisniku jare25
Određen forumom Re: SQL Upiti-neke nedoumice

Znachi li to da ce se (na ovom primjeru) kao rezultat iz tabele dobiti samo jedan uchenik sa najmanjim prosjekom?
jare25 je offline   Odgovor sa citatom ove poruke
Stara 23.9.2009, 15:53   #15
holodoc
Deo inventara foruma
 
Član od: 5.12.2005.
Poruke: 6.785
Zahvalnice: 348
Zahvaljeno 1.893 puta na 1.078 poruka
Određen forumom Re: SQL Upiti-neke nedoumice

Citat:
jare25 kaže: Pregled poruke
Znachi li to da ce se (na ovom primjeru) kao rezultat iz tabele dobiti samo jedan uchenik sa najmanjim prosjekom?
Da upravo tako.
holodoc je offline   Odgovor sa citatom ove poruke
Stara 23.9.2009, 16:09   #16
jare25
Član
 
Član od: 9.3.2009.
Lokacija: Podgorica
Poruke: 164
Zahvalnice: 27
Zahvaljeno 8 puta na 5 poruka
Slanje poruke preko Skypea korisniku jare25
Određen forumom Re: SQL Upiti-neke nedoumice

A kako onda odraditi da se pokazuju svi uchenici (zar to nije bio zadatak?) sa najmanjim prisjekom? Shta ako postoje 2 ili vishe takvih uchenika?
jare25 je offline   Odgovor sa citatom ove poruke
Stara 23.9.2009, 16:11   #17
pixel
Član
 
Član od: 19.1.2009.
Poruke: 133
Zahvalnice: 13
Zahvaljeno 17 puta na 13 poruka
Određen forumom Re: SQL Upiti-neke nedoumice

@holodoc

Probao sam. Vraća dva podatka, kada je, recimo, prosek isti.

Kada sam na početku probao ovu varijantu, radilo je super jer u odeljenju V1 nisu postojali jednaki proseci. Zato je izbacio samo jedan.

Međutim, kada sam promenio podatke i stavio, recimo da u odeljenju V1 ima dva učenika sa prosekom 3.44, on mi izbacuje podatke za oba učenika.
pixel je offline   Odgovor sa citatom ove poruke
Sledeći korisnik se zahvaljuje korisniku pixel na korisnoj poruci:
jare25 (23.9.2009)
Stara 23.9.2009, 16:40   #18
holodoc
Deo inventara foruma
 
Član od: 5.12.2005.
Poruke: 6.785
Zahvalnice: 348
Zahvaljeno 1.893 puta na 1.078 poruka
Određen forumom Re: SQL Upiti-neke nedoumice

Citat:
pixel kaže: Pregled poruke
@holodoc

Probao sam. Vraća dva podatka, kada je, recimo, prosek isti.

Kada sam na početku probao ovu varijantu, radilo je super jer u odeljenju V1 nisu postojali jednaki proseci. Zato je izbacio samo jedan.

Međutim, kada sam promenio podatke i stavio, recimo da u odeljenju V1 ima dva učenika sa prosekom 3.44, on mi izbacuje podatke za oba učenika.
Što je sasvim normalno ponašanje jer server u tom slučaju ne može da ti kaže koji je manji broj od dva identična Postoji nekoliko načina kako možeš da zaobiđeš ovaj problem. Jedan od njih je povećanje preciznosti kolone koja sadrži prosek. Recimo da se preciznost sa single floata prebaci na double float ali ni to ne garantuje da neće biti slučajeva u kome se proseci poklapaju. Drugi način obično uzima u obzir neki dodatni kriterijum (kao recimo najveći broj jedinica itd.) kojim može da se osigura jedinstvenost rezultata.

Logički gledano ipak ovo što dobijaš sada kao rezultat je upravo ono što si hteo jer bi na svaki drugačiji način server bio kriv za gubljenje integriteta podataka jer bi od svih najgorih učenika uvek bio prikazan samo jedan tako da ako bi se ovi rezultati koristili za dalju obradu (recimo u procedurama ili funkcijama baze) bilo bi problema.
holodoc je offline   Odgovor sa citatom ove poruke
Stara 9.12.2009, 0:05   #19
prudentia
Član
 
Član od: 22.2.2008.
Lokacija: podgorica
Poruke: 250
Zahvalnice: 63
Zahvaljeno 111 puta na 52 poruka
Određen forumom Re: SQL upiti - neke nedoumice

Postoji li neki tutorijal za SQL upite?
Ili da neko napise neke fore za pisane upita, koja je tabela kad gleda i tako to.
prudentia je offline   Odgovor sa citatom ove poruke
Stara 9.12.2009, 23:13   #20
irreal
V.I.P. Programiranje
 
Član od: 9.1.2009.
Lokacija: Beograd, Banovo Brdo
Poruke: 1.157
Zahvalnice: 83
Zahvaljeno 448 puta na 303 poruka
Određen forumom Re: SQL upiti - neke nedoumice

Citat:
prudentia kaže: Pregled poruke
koja je tabela kad gleda i tako to.
e, dobro si rekao :

deder pojasni sta znaci "koja je tabela kad gleda"

ako mislis na generalnu sintaksu SQL-a, to stvarno ne bi trebao da ti bude bilo kakav problem, imas bukvlano na sve strane.

evo, predlazem ti da krenes od http://www.w3schools.com/sql/default.asp
procitaj malo uvod, klikni "start learning SQL now" i uzivanje moze da pocne

ako mislis na kompleksnije stvari u sql-u, to dosta zavisi od baze i njene implementacije jezika, tako da ti savetujem da potrazis za konkretnu bazu koja te zanima, kao najpopularniji se izdvajaju Oracle, MySQL, Sybase i Microsoft SQL Server

svi imaju neke svoje specificnosti, medjutim, lako ces se prilagoditi na bilo koji kada lepo naucis sam SQL.

ako imas neko konkretnije pitanje, slobodno postavi, ovako kao da si rekao "recite mi neku foru oko programiranja" prosto covek nema ideju odakle da pocne
irreal je offline   Odgovor sa citatom ove poruke
Sledeći korisnik se zahvaljuje korisniku irreal na korisnoj poruci:
prudentia (10.12.2009)
Odgovor

Bookmarks sajtovi


Vaš status
Ne možete postavljati teme
Ne možete odgovarati na poruke
Ne možete slati priloge uz poruke
Ne možete prepravljati svoje poruke

BB kod: uključeno
Smajliji: uključeno
[IMG] kod: uključeno
HTML kod: isključeno


Slične teme
tema temu započeo forum Odgovora Poslednja poruka
Stvari koje bez filmova nikad ne biste znali... REDisLAW Cvet kompjutera 329 2.2.2010 4:00
Neke komande u Windowsu allokin Operativni sistemi 14 1.4.2008 21:20
SQL Server 2000 Zoran035 Programiranje 2 18.10.2007 13:23
Upomoc koji SQL za VB6 corcrash Programiranje 2 10.10.2007 23:16
[SQL] Aplikacije za prosleđivanje SQL upita preko ODBC-a RaleVuk Serverske aplikacije i baze podataka 6 25.7.2006 2:39


Sva vremena su po Griniču +2 h. Sada je 12:43.


Powered by vBulletin® verzija 3.8.7
Copyright ©2000–2024, vBulletin Solutions, Inc.
Hosted by Beograd.com