Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Pomoć oko jednog malenog SQL Upita

[es] :: Baze podataka :: Pomoć oko jednog malenog SQL Upita
(Zaključana tema (lock), by misk0)

[ Pregleda: 2503 | Odgovora: 8 ] > FB > Twit

Postavi temu

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

scorpion667

Član broj: 174625
Poruke: 19
80.71.152.*



Profil

icon Pomoć oko jednog malenog SQL Upita21.10.2008. u 17:33 - pre 188 meseci
Pozdrav. Imam jedan maleni problem pa ako netko zna rješenje neka slobodno javi.
Zadatak je ovakav

Code:
Prikazati sve podatke o lokalima koji us iznajmljeni više puta nego što Marko Marković posjeduje Lokala, a manje nego ukupan broj iznajmljivanja Ivana Ivanica


Ja sam napisao kod ovako:
Code:
SELECT L.IDLokala, L.IDPoslCentra, L.IDVlasnika, L.IDVrsteLokala, L.Naziv, L.Povrsina, L.Telefon, count(*)
FROM Lokal L, UGOVOR U, KLIJENT K
WHERE U.IDLokala=L.IDLokala
AND U.IDKlijenta=K.IDKlijenta
GROUP BY L.IDLokala, L.IDPoslCentra, L.IDVlasnika, L.IDVrsteLokala, L.Naziv, L.Povrsina, L.Telefon 
HAVING COUNT(*)>(SELECT count(*)
                           FROM VLASNIK V, LOKAL L
                           WHERE L.IDVlasnika=V.IDVlasnika
                           AND V.Ime LIKE 'Marko'
                           AND V.Prezime LIKE 'Markovic'
                           HAVING COUNT(*)<(SELECT count(*)
                                                      FROM KLIJENT K, UGOVOR U, LOKAL L
                                                      WHERE U.IDLokala=L.IDLokala
                                                      AND U.IDKlijenta=K.IDKlijenta
                                                      AND K.Ime LIKE 'Ivan'
                                                      AND K.Prezime LIKE 'Ivanic')
                                                       )

Pretpostavljam da je ovo moja logička greška u drugom podupitu. Naime Marko Markovic posjeduje 2 lokala, a Ivan Ivanic je ukupno iznajmljivao 5 puta. Meni treba da mi izlista one lokale koji su iznajmljeni 3 ili 4 puta, ali kada pokrenem upit on mi izlista i one sa 5 ili 6 iznajmljivanja.
Unaprijed hvala na bilo kakvoj pomoći.
 
0

vbbojan
Atanasijevic Bojan
Digit Consulting d.o.o.
Beograd

Član broj: 31580
Poruke: 273
93.93.194.*

Sajt: www.digitconsulting.rs


+20 Profil

icon Re: Pomoć oko jednog malenog SQL Upita21.10.2008. u 17:52 - pre 188 meseci
Lepa praksa je da kada se trazi pomoc ovog tipa da se daju
strukture tabela, relacije i test podaci, tada ce svima koji su
voljni da pomognu biti mnogo lakse da ti izadju u susret.
Mene licno "mrzi" da razmatram tvoj problem bez gore
navedenih stvari.
Kako se to radi mozes na primer videti u postavci zadnje mozgalice.
Potrudi se malo, ako ocekujes da se i drugi potrude oko tvog problema.

Pozdrav, Bojan
 
0

cdorde
Đorđe Cvijanović
Doboj

Član broj: 124576
Poruke: 13
79.143.170.*



Profil

icon Re: Pomoć oko jednog malenog SQL Upita21.10.2008. u 17:52 - pre 188 meseci
Probaj ovako:

SELECT L.IDLokala, L.IDPoslCentra, L.IDVlasnika, L.IDVrsteLokala, L.Naziv, L.Povrsina, L.Telefon, count(*)
FROM Lokal L, UGOVOR U, KLIJENT K
WHERE U.IDLokala=L.IDLokala
AND U.IDKlijenta=K.IDKlijenta
GROUP BY L.IDLokala, L.IDPoslCentra, L.IDVlasnika, L.IDVrsteLokala, L.Naziv, L.Povrsina, L.Telefon
HAVING COUNT(*)>(SELECT count(*)
FROM VLASNIK V, LOKAL L
WHERE L.IDVlasnika=V.IDVlasnika
AND V.Ime LIKE 'Marko'
AND V.Prezime LIKE 'Markovic')
AND
COUNT(*)<(SELECT count(*)
FROM KLIJENT K, UGOVOR U, LOKAL L
WHERE U.IDLokala=L.IDLokala
AND U.IDKlijenta=K.IDKlijenta
AND K.Ime LIKE 'Ivan'
AND K.Prezime LIKE 'Ivanic')
)
 
0

cdorde
Đorđe Cvijanović
Doboj

Član broj: 124576
Poruke: 13
79.143.170.*



Profil

icon Re: Pomoć oko jednog malenog SQL Upita21.10.2008. u 17:59 - pre 188 meseci
Nažalost sad se izgubi struktura. Jednom rječju onaj drugi HAVING zamijeni sa

) AND

i na kraju obriši onu jednu zagrada viška.

Tvoj upit je davao odgvor na pitanje:

Daj mi sve lokale koji su iznajmljivani veći broj puta od lokala Marka Markovića i to pod uslovom da je taj lokal (lokal Marka Markovića) iznajmljivan manje puta nego lokal Ivana Ivanića.

Međutim, ako imaš neki lokal za koga je drugi count(*) jednak nula puta onda ono "veći broj puta" znači svi lokali ili dalje ako je neki od lokala Marka Markovića iznajmljen samo jednom onda ćeš dobiti sve lokale koji su iznajmljeni više puta nego jednom.

Nadam se da razumiješ, logika ti nije dobra.
 
0

scorpion667

Član broj: 174625
Poruke: 19
80.71.152.*



Profil

icon Re: Pomoć oko jednog malenog SQL Upita21.10.2008. u 18:27 - pre 188 meseci
Citat:
cdorde: Nažalost sad se izgubi struktura. Jednom rječju onaj drugi HAVING zamijeni sa

) AND

i na kraju obriši onu jednu zagrada viška.

Tvoj upit je davao odgvor na pitanje:

Daj mi sve lokale koji su iznajmljivani veći broj puta od lokala Marka Markovića i to pod uslovom da je taj lokal (lokal Marka Markovića) iznajmljivan manje puta nego lokal Ivana Ivanića.

Međutim, ako imaš neki lokal za koga je drugi count(*) jednak nula puta onda ono "veći broj puta" znači svi lokali ili dalje ako je neki od lokala Marka Markovića iznajmljen samo jednom onda ćeš dobiti sve lokale koji su iznajmljeni više puta nego jednom.

Nadam se da razumiješ, logika ti nije dobra.


Hvala. Upalilo je. Znao sam da je to logička greška ali sam vam to bio ubacio radi orjentacije kakvi su podaci. Još jednom HVALA ti puno
 
0

scorpion667

Član broj: 174625
Poruke: 19
80.71.152.*



Profil

icon Re: Pomoć oko jednog malenog SQL Upita21.10.2008. u 18:41 - pre 188 meseci
Znaš li možda zašto mi ovdje javlja "Syntax error in ORDER BY clause"?

SELECT K.Ime, K.Prezime, K.Adresa, count(*)
FROM KLIJENT K, UGOVOR U, VrstaKlijenta V
WHERE K.IDVrsteKlijenta=V.IDVrsteKilijenta
AND U.IDKlijenta=K.IDKlijenta
GROUP BY K.Ime, K.Prezime, K.Adresa
ORDER BY V.Kratica
HAVING count(*)>1

Sve veze između tablica su točne.
 
0

scorpion667

Član broj: 174625
Poruke: 19
80.71.152.*



Profil

icon Re: Pomoć oko jednog malenog SQL Upita21.10.2008. u 18:58 - pre 188 meseci
Nista, rijesio sam.
 
0

momsab
Momčilo
Beograd, R.Srbija

Član broj: 2804
Poruke: 3041
*.dynamic.sbb.rs.

Jabber: pitati@PP
Sajt: www.momsab.com


+1 Profil

icon Re: Pomoć oko jednog malenog SQL Upita21.10.2008. u 19:09 - pre 188 meseci
kako?

gde su ti upiti za tabele i test podatke?
Žena u krevetu i vino na stolu nikako ne smeju da čekaju. Jer, vino se greje a žena hladi.

-vinolog
 
0

misk0
.: Lugano :. _.: CH :.

SuperModerator
Član broj: 634
Poruke: 2824
*.adsl.ticino.com.

ICQ: 46802502


+49 Profil

icon Re: Pomoć oko jednog malenog SQL Upita22.10.2008. u 09:03 - pre 188 meseci
Nadam se da je autor dobio zadovoljavajuci odgovor, ukoliko nije nek postavi ponovo temu postujuci pravila o postavljanju tema a to znaci ukljuciti DDL za tabelu/e i nekoliko test podataka.

:: Nemoj se svadjati sa budalom, ljudi cesto nece primjetiti razliku ::
 
0

[es] :: Baze podataka :: Pomoć oko jednog malenog SQL Upita
(Zaključana tema (lock), by misk0)

[ Pregleda: 2503 | Odgovora: 8 ] > FB > Twit

Postavi temu

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.