
Untitled
By: a guest on
May 22nd, 2012 | syntax:
None | size: 1.95 KB | hits: 186 | expires: Never
alter procedure odmena
@prijmeni varchar(20),
@jmeno varchar(15),
@odmena int
as
begin
declare @hodnotil int
declare @prumer int
declare @dostane int
if not exists (select * from lektor l where l.jmeno = @jmeno and l.prijmeni=@prijmeni)
begin
print 'Zadaný lektor '+@prijmeni+' '+ @jmeno+' se v databázi nenalézá'
end
else if not exists (select h.hodnoceni from lektor l,terminy t, hodnoceni h where l.jmeno = @jmeno and l.prijmeni=@prijmeni
and t.cislo_lektora = l.cislo_lektora and h.id_terminu = t.id_terminu)
begin
print 'Zadaný lektor '+@prijmeni+' '+ @jmeno+' si nic nezasloužil, protože nikoho nehodnotil'
end
else
begin
set @hodnotil=(select COUNT(h.id_hodnoceni) from lektor l,terminy t, hodnoceni h where l.jmeno = @jmeno and l.prijmeni=@prijmeni
and t.cislo_lektora = l.cislo_lektora and h.id_terminu = t.id_terminu )
set @prumer=(select avg(h.hodnoceni) from lektor l,terminy t, hodnoceni h where l.jmeno = @jmeno and l.prijmeni=@prijmeni
and t.cislo_lektora = l.cislo_lektora and h.id_terminu = t.id_terminu )
set @dostane =@dostane * @odmena
select distinct s.jmeno,s.prijmeni,h.hodnoceni, CASE h.hodnoceni
WHEN 1 THEN 'Výborně'
WHEN 2 THEN 'Velmi dobře'
WHEN 3 THEN 'dobře'
WHEN 4 THEN 'nedostatečně'
ELSE 'chyba'
END as 'Nej vysledek'
from lektor l,terminy t, hodnoceni h, student s where l.jmeno = @jmeno and l.prijmeni=@prijmeni
and t.cislo_lektora = l.cislo_lektora and h.id_terminu = t.id_terminu and h.cislo_studenta = s.cislo_studenta
print 'Zadaný lektor '+@prijmeni+' '+ @jmeno+' hodnotil '+ convert(varchar(2),@hodnotil)+' x s průměrným hodnocením '+convert(varchar(2),@prumer) +' a náleží mu odměna ' +
convert(varchar(10),@dostane) + ' Kč'
end
end
exec odmena 'Pálka','Ladislav',500
exec odmena 'Bobalová','Martina',500
exec odmena 'Luhan','Jan',500