
Molimo vas da kacite samo resenja koja daju isporavan rezultat. Ne ponavljajte ulazne podatke, samo dajte vas SQL iskaz.
Ovu mozgalicu nasao sam na jednom sajtu kao prvu u grupi pocetnickih mozgalica - znaci, za one koji su tek naucili SQL sintaksu. Sajt je o MS SQL, pa sam je stavio na MS SQL forum. Da li je bas pocetnicka, prosudite sami

Mozgalica: Data je tabela #Zaposleni u kojoj cuvamo podatke o radnim jedinicama, radnicim a i njihovim platama. Treba pokazati za svaku radnu jedinicu radnike koji imaju drugu najvecu platu u radnoj jedinici. Ako tacno jedan radnik ima drugu najvecu platu, prikazati tog radnika. Ako vise radnika ima drugu najvecu platu, pokazati ih sve. Konacni rezultat da bude sortiran po kolonama RadnaJedinica a ako ima vise radnika u radnoj jedinici da oni budu u okviru radne jedinice poredjani po abecedi ili azbuci, svejedno.
Ulazni podaci:
RadnaJedinica Radnik Plata
--------------- --------------- ---------------------------------------
Klasicna D Zubovic 25000.00
Klasicna J JOvanovic 18000.00
Klasicna R Bakocevic 15000.00
Klasicna O Njego 10000.00
Narodnjaci M Ilic 40000.00
Narodnjaci D Zivkovic 25000.00
Narodnjaci T Zdravkovic 20000.00
Narodnjaci P Gojkovic 15000.00
Rokeri G Bregovic 80000.00
Rokeri R M Tocak 50000.00
Rokeri B Djordjevic 50000.00
Rokeri Dz Stulic 40000.00
(12 row(s) affected)
Pravil igre: Rezultat mora biti kveri koji radi u MS QL verzijama 2005 i navise, koji pocinje sa SELECT ili WITH. Znaci, nema kursora i temp tabela, cisti SELECT izraz, koji moze da pocinje sa WIDTH.
Rezultat treba da izgleda ovako:
RadnikID Radnik RadnaJedinica Plata
----------- --------------- --------------- ---------------------------------------
10 J JOvanovic Klasicna 18000.00
2 D Zivkovic Narodnjaci 25000.00
8 B Djordjevic Rokeri 50000.00
7 R M Tocak Rokeri 50000.00
(4 row(s) affected)
Skripta za kreirenje ulaznih podataka:
IF Object_ID('tempdb..#Zaposleni') IS NOT NULL DROP TABLE #Zaposleni
;
CREATE TABLE #Zaposleni (
RadnikID INT IDENTITY,
Radnik VARCHAR(15),
RadnaJedinica VARCHAR(15),
Plata NUMERIC(16,2)
)
INSERT INTO #Zaposleni(Radnik, RadnaJedinica, Plata)
VALUES('M Ilic','Narodnjaci', 40000)
INSERT INTO #Zaposleni(Radnik, RadnaJedinica, Plata)
VALUES('D Zivkovic','Narodnjaci', 25000)
INSERT INTO #Zaposleni(Radnik, RadnaJedinica, Plata)
VALUES('T Zdravkovic','Narodnjaci', 20000)
INSERT INTO #Zaposleni(Radnik, RadnaJedinica, Plata)
VALUES('P Gojkovic','Narodnjaci', 15000)
;
INSERT INTO #Zaposleni(Radnik, RadnaJedinica, Plata)
VALUES('G Bregovic','Rokeri', 80000)
INSERT INTO #Zaposleni(Radnik, RadnaJedinica, Plata)
VALUES('Dz Stulic','Rokeri', 40000)
INSERT INTO #Zaposleni(Radnik, RadnaJedinica, Plata)
VALUES('R M Tocak','Rokeri', 50000)
INSERT INTO #Zaposleni(Radnik, RadnaJedinica, Plata)
VALUES('B Djordjevic','Rokeri', 50000)
;
INSERT INTO #Zaposleni(Radnik, RadnaJedinica, Plata)
VALUES('D Zubovic','Klasicna', 25000)
INSERT INTO #Zaposleni(Radnik, RadnaJedinica, Plata)
VALUES('J JOvanovic','Klasicna', 18000)
INSERT INTO #Zaposleni(Radnik, RadnaJedinica, Plata)
VALUES('R Bakocevic','Klasicna', 15000)
INSERT INTO #Zaposleni(Radnik, RadnaJedinica, Plata)
VALUES('O Njego','Klasicna', 10000)
;
-- Ulazni podaci:
SELECT RadnaJedinica, Radnik, Plata
FROM #Zaposleni
ORDER BY RadnaJedinica, Plata DESC
;
Uzivajte!