Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on May 22nd, 2012  |  syntax: None  |  size: 1.95 KB  |  hits: 186  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. alter procedure odmena
  2.  
  3. @prijmeni varchar(20),
  4. @jmeno varchar(15),
  5. @odmena int
  6. as
  7. begin
  8.         declare @hodnotil int
  9.         declare @prumer int
  10.         declare @dostane int
  11.        
  12.         if not exists (select * from lektor l where l.jmeno = @jmeno and l.prijmeni=@prijmeni)
  13.                 begin
  14.                         print 'Zadaný lektor '+@prijmeni+' '+ @jmeno+' se v databázi nenalézá'
  15.                 end
  16.         else if not exists (select h.hodnoceni from lektor l,terminy t, hodnoceni h where l.jmeno = @jmeno and l.prijmeni=@prijmeni
  17.                                                 and t.cislo_lektora = l.cislo_lektora and h.id_terminu = t.id_terminu)
  18.                 begin
  19.                         print 'Zadaný lektor '+@prijmeni+' '+ @jmeno+' si nic nezasloužil, protože nikoho nehodnotil'
  20.                 end
  21.         else
  22.        
  23.                 begin
  24.                         set @hodnotil=(select COUNT(h.id_hodnoceni) from lektor l,terminy t, hodnoceni h where l.jmeno = @jmeno and l.prijmeni=@prijmeni
  25.                                                 and t.cislo_lektora = l.cislo_lektora and h.id_terminu = t.id_terminu )
  26.                         set @prumer=(select avg(h.hodnoceni) from lektor l,terminy t, hodnoceni h where l.jmeno = @jmeno and l.prijmeni=@prijmeni
  27.                                                 and t.cislo_lektora = l.cislo_lektora and h.id_terminu = t.id_terminu )
  28.                     set @dostane =@dostane * @odmena
  29.                    
  30.                    
  31.                          select distinct s.jmeno,s.prijmeni,h.hodnoceni, CASE  h.hodnoceni
  32.                         WHEN 1 THEN 'Výborně'
  33.                         WHEN 2 THEN 'Velmi dobře'  
  34.                         WHEN 3 THEN 'dobře'  
  35.                         WHEN 4 THEN 'nedostatečně'  
  36.                         ELSE 'chyba'
  37.                         END as 'Nej vysledek'
  38.                         from lektor l,terminy t, hodnoceni h, student s where l.jmeno = @jmeno and l.prijmeni=@prijmeni
  39.                                                 and t.cislo_lektora = l.cislo_lektora and h.id_terminu = t.id_terminu and h.cislo_studenta = s.cislo_studenta
  40.                  
  41.                     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 ' +
  42.                     convert(varchar(10),@dostane) + ' Kč'
  43.                
  44.                    
  45.                 end            
  46. end
  47.  
  48.  
  49. exec odmena 'Pálka','Ladislav',500
  50. exec odmena 'Bobalová','Martina',500
  51. exec odmena 'Luhan','Jan',500