citanje podataka iz baze problem

citanje podataka iz baze problem

offline
  • Huskar
  • strukovni inzenjer elektrotehnike i racunarstva
  • Pridružio: 31 Maj 2008
  • Poruke: 881
  • Gde živiš: Kula

Imam ovakvu tabelu

S_RADNICI tabela radnika
-------------------------------
SI_RAD sifra radnika (pk)
IME ime radnika
PREZIME prezime radika
SI_OJ sifra organizione jedinice (fk)

S_ORGJED tabela organizacionih jedinica
-------------------------------------
SI_OJ sifra organizacione jedinice (pk)
NAZIV naziv organizacione jedinice

I hocu izvestaj koji se sastoji:
nazivi organizacionih jedinica i broj radnika u svakoj od njih,
tako sortirano da se prvo prikazuju org.jedinice sa najvise radnika.

Stavio sam relationship ovako


i kada hocu da ispisem to sto zelim ispise mi samo sifre 1,2,3 a ne tako povezano, zasto? u cemu je problem? evo sql

SELECT S_ORGJED.SIOJ FROM S_ORGJED INNER JOIN S_RADNICI ON S_ORGJED.SIOJ = S_RADNICI.SIOJ;



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
online
  • Milan
  • Pridružio: 17 Dec 2007
  • Poruke: 14468
  • Gde živiš: Niš

Zato što si u SELECT delu tako odabrao. Napravio si spoj tabela, ali si prikazao samo jednu kolonu tog spoja.



offline
  • Huskar
  • strukovni inzenjer elektrotehnike i racunarstva
  • Pridružio: 31 Maj 2008
  • Poruke: 881
  • Gde živiš: Kula

Napisano: 25 Nov 2014 18:44

ovako je u samoj tabeli, ali ne mogu da izvucem to u query


ali ako stavim ovako

SELECT  S_ORGJED.NAZIV FROM S_ORGJED INNER JOIN S_RADNICI ON S_ORGJED.SIOJ = S_RADNICI.SIOJ;
kako da sad stavim broj radnika u svakoj od njih, kako taj broj da izvucem?

Dopuna: 25 Nov 2014 18:54

Pokusao sam da napravim poseban upit,

SELECT Count(*) AS BrojRadnika FROM S_ORGJED;

ali kako za poseban naziv napraviti

Dopuna: 25 Nov 2014 19:05

Pokusao sam ovako

SELECT S_ORGJED.NAZIV FROM S_ORGJED INNER JOIN S_RADNICI ON S_ORGJED.SIOJ = S_RADNICI.SIOJ UNION ALL SELECT Count(*) AS BrojRadnika FROM S_ORGJED;
but no help

Dopuna: 25 Nov 2014 19:38

Evo uradio sam ovako i dalo mi je OK rezultate
SELECT S_ORGJED.NAZIV, Count(S_ORGJED.SIOJ) AS BrojRadnika FROM S_ORGJED INNER JOIN S_RADNICI ON S_ORGJED.SIOJ = S_RADNICI.SIOJ GROUP BY S_ORGJED.NAZIV ORDER BY Count(S_ORGJED.SIOJ) DESC;

online
  • Milan
  • Pridružio: 17 Dec 2007
  • Poruke: 14468
  • Gde živiš: Niš

Tako je. Grupisanje je neophodno prilikom ovakvih upita i u GROUP BY klauzuli neophodno je navođenje svih atributa navedenih u SELECT klauzuli nad kojima nije primenjena neka funkcija agregacije.

Ko je trenutno na forumu
 

Ukupno su 456 korisnika na forumu :: 17 registrovanih, 1 sakriven i 438 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3028 - dana 22 Nov 2019 07:47

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: back4ever, doom83, galijot, GrM, ivan979, Jester, Kruger2, KUZMAR, lekso, MikeHammer, Milan A. Nikolic, nenad812, Panter2, Profica2, vasa.93, xandar, Yellow Pinky