citanje podataka iz baze problem

citanje podataka iz baze problem

offline
  • Huskar
  • strukovni inzenjer elektrotehnike i racunarstva
  • Pridružio: 31 Maj 2008
  • Poruke: 877
  • 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.
offline
  • Milan
  • Pridružio: 17 Dec 2007
  • Poruke: 14216
  • 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: 877
  • 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;

offline
  • Milan
  • Pridružio: 17 Dec 2007
  • Poruke: 14216
  • 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 434 korisnika na forumu :: 11 registrovanih, 0 sakrivenih i 423 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 1567 - dana 15 Jul 2016 19:18

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: Drug pukovnik, Faki-Valjevo, Georgius2, Grzegorz, ivica976, ljuba sd, rovac, S-lash, Srki94, Taso, USSVoyager