Advertisement
Guest User

help2

a guest
Mar 23rd, 2017
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MySQL 3.71 KB | None | 0 0
  1. --------------------------------------------------------
  2. --  File created - Úterý-března-21-2017  
  3. --------------------------------------------------------
  4. --------------------------------------------------------
  5. --  DDL for Procedure LOL
  6. --------------------------------------------------------
  7. set define off;
  8.  
  9.   CREATE OR REPLACE EDITIONABLE PROCEDURE "NAV0140"."LOL" (name IN varchar2 ,rok_od IN int,rok_do IN int)
  10. AS
  11. den varchar2(10);
  12. cena int;
  13.  
  14. cursor list is
  15. select dny,cena from
  16. (
  17. select dny, nvl(cena,0) as cena
  18.   from
  19.   (
  20.   SELECT  distinct to_char(nn.den,'DY') as dny from nakup nn
  21.   )y  
  22.   left JOIN
  23.   (
  24.   SELECT den,sum(cena) as cena
  25.   from
  26.   (
  27.   SELECT to_char(n.den,'DY') as den,n.CENA FROM nakup n
  28.   join zakaznik z on z.zID=n.zID
  29.   where z.jmeno=name  and to_char(n.den,'YYYY') between rok_od and rok_do
  30.   )x
  31.   group by den
  32.   )z
  33.   ON y.dny=z.den
  34.   )pp
  35.   order by (CASE WHEN pp.dny='PO' then 1
  36.                        WHEN pp.dny='ÚT' then 2
  37.                        WHEN pp.dny='ST' then 3
  38.                        WHEN pp.dny='ČT' then 4
  39.                        WHEN pp.dny='PÁ' then 5
  40.                        WHEN pp.dny='SO' then 6
  41.                        WHEN pp.dny='NE' then 7 end);
  42.  
  43.  
  44.  BEGIN
  45.     dbms_output.put_line('Zakaznik: ' || name);
  46.    OPEN list;
  47.    LOOP
  48.    FETCH list into den,cena;
  49.       EXIT WHEN list%notfound;
  50.       dbms_output.put_line(den || ' :' || cena);
  51.    END LOOP;
  52.    CLOSE list;
  53. END;
  54.  
  55. /
  56.  
  57.  
  58.  
  59. set define off;
  60.  
  61.   CREATE OR REPLACE EDITIONABLE PROCEDURE "NAV0140"."LOL2" (rok_od IN int,rok_do IN int)
  62. as
  63. v_rok int;
  64. v_den varchar2(10);
  65. v_cena int;
  66.  
  67. cursor list is
  68.   select * from  
  69.   (
  70.   SELECT  to_char(den,'YYYY')as rok, to_char(den,'DY') as den,SUM(cena) AS CENA FROM nakup n
  71.   GROUP BY to_char(den,'YYYY'), to_char(den,'DY'))x
  72.   WHERE cena in(
  73.   SELECT MAX(cena) from
  74.   (SELECT  to_char(den,'YYYY')as rok, to_char(den,'DY') as den,SUM(cena) AS CENA FROM nakup n
  75.   GROUP BY to_char(den,'YYYY'), to_char(den,'DY'))x
  76.   group by rok
  77.   )
  78.   and rok between rok_od and rok_do
  79.   order by rok;
  80.  
  81.    BEGIN
  82.    OPEN list;
  83.    LOOP
  84.    FETCH list into v_rok,v_den,v_cena;
  85.       EXIT WHEN list%notfound;
  86.       dbms_output.put_line(v_rok||': '||v_den||': '|| v_cena);
  87.    END LOOP;
  88.    CLOSE list;
  89. END;
  90.  
  91.  
  92.  
  93.  
  94.  
  95.  
  96. set define off;
  97.  
  98.   CREATE OR REPLACE EDITIONABLE PROCEDURE "NAV0140"."LOL3" (rok_od IN int,rok_do IN int:=2015)
  99. as
  100. v_pohlavi varchar2(4);
  101. v_cena int(10);
  102. v_rokmax int := 2018;
  103. v_rokmin int :=1900;
  104.  
  105. cursor list is
  106. SELECT z.pohlavi,sum(n.cena)as cena FROM nakup n
  107. join zakaznik z on z.zID=n.zID
  108. where to_char(den,'YYYY') between rok_od and rok_do
  109. group by pohlavi;
  110.  
  111.    BEGIN
  112.    OPEN list;
  113.    LOOP
  114.    FETCH list into v_pohlavi,v_cena;
  115.       EXIT WHEN list%notfound;
  116.  
  117.   if rok_od>-1 and rok_do>-1 then
  118.     if v_pohlavi='muz' then dbms_output.put_line('Muzi' ||' mezi roky '||rok_od ||' a '||rok_do||' nakoupili za: ' ||v_cena);
  119.     end if;
  120.     if v_pohlavi='zena' then dbms_output.put_line('Zeny' ||' mezi roky '||rok_od ||' a '||rok_do||' nakoupili za: ' ||v_cena);
  121.     end if;
  122.   end if;
  123.  
  124.   if rok_od=-1 and rok_do>-1 then
  125.     if v_pohlavi='muz' then dbms_output.put_line('Muzi' ||' do roku '||rok_do||' nakoupili za: ' ||v_cena);
  126.     end if;
  127.     if v_pohlavi='zena' then dbms_output.put_line('Zeny' ||' do roku '||rok_do||' nakoupily za: ' ||v_cena);
  128.     end if;
  129.   end if;
  130.  
  131.   if rok_od>-1 and rok_do=-1 then
  132.       if v_pohlavi='muz' then dbms_output.put_line('Muzi' ||' od roku '||rok_od||' nakoupili za: ' ||v_cena);
  133.     end if;
  134.     if v_pohlavi='zena' then dbms_output.put_line('Zeny' ||' od roku '||rok_od||' nakoupily za: ' ||v_cena);
  135.     end if;
  136.   end if;
  137.  
  138.    END LOOP;
  139.    CLOSE list;
  140. END;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement