У вас вопросы?
У нас ответы:) SamZan.net

Ужгороддержкордон 2 1400 3 ОстрогожськГадяч 2 1000 4 ЄлецькОрел

Работа добавлена на сайт samzan.net: 2016-03-13

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 5.4.2025

PAGE  3

        13 Вкладені алгоритми

    Задача 4. Виготовити звіт про сумарний об’єм транспортованого газу за поточний рік по кожному підприємству для заданого газопровода. До заголовка звіту додати назву газопроводу, слова “станом на” і встановити поточну дату.

        Таблиця gazpr (газопроводи):

1   Україна                                         1   1400

2   Ямпіль-Ужгород-держкордон     2   1400

3   Острогожськ-Гадяч                     2   1000

4   Єлецьк-Орел                               7   1200

5   Єлецьк-Десна-Кривий Ріг           5   1600

        Таблиця pidpr (підприємства):

1  Харківтрансгаз              Харків        

2  Прикарпаттрансгаз       Івано-Франківськ         

3  Київтрансгаз                  Київ                    

4  Львівтрансгаз                Львів          

5  Експорттрансгаз           Ужгород    

        Таблиця оblik (облік):

2    2    2005-04-12    2

2    2    2012-04-12    2

2    5    2012-02-11    1

3    5    2012-09-10    3

2    5    2012-07-01    4

        Zvit_cykl без курсора:

CREATE OR REPLACE FUNCTION zvit_cykl(integer)

RETURNS text AS

$$

DECLARE

zapysp pidpr %ROWTYPE; zapyso oblik %ROWTYPE; zapysg gazpr %ROWTYPE;

name_g gazpr.naz_g %TYPE; kod ALIAS FOR $1;

den INTEGER; mis INTEGER; rik INTEGER; ms CHARACTER(9) ARRAY[12];

slovo TEXT; s REAL; b BOOL;

BEGIN

den:=EXTRACT(DAY FROM CURRENT_DATE);

mis:=EXTRACT(MONTH FROM CURRENT_DATE);

rik:=EXTRACT(YEAR FROM CURRENT_DATE);

ms[1]:='січня'; ms[2]:='лютого'; ms[3]:='березня'; ms[4]:='квітня';

ms[5]:='травня'; ms[6]:='червня'; ms[7]:='липня'; ms[8]:='серпня';

ms[9]:='вересня'; ms[10]:='жовтня'; ms[11]:='листопада'; ms[12]:='грудня';

SELECT INTO name_g naz_g FROM gazpr WHERE kod_g = kod;

slovo:='                                         Звіт'||E'\n';

slovo:=slovo ||'про кількість транспортованого газу по газопроводу '||name_g||E'\n';

slovo:=slovo ||'станом на '||TO_CHAR(den,'99')||' '||ms[mis]||' '|| TO_CHAR(rik, '9999')||E'\n\n';

slovo:=slovo ||'Підприємство                  Кількість'||E'\n';

slovo:=slovo ||'-----------------------------------------------'||E'\n';

FOR zapysp IN SELECT * FROM pidpr ORDER BY naz_p LOOP

s:=0;

FOR zapyso IN SELECT * FROM oblik LOOP

b:=zapyso.kod_g=kod;

b:=b AND zapyso.kod_p=zapysp.kod_p;

b:=b AND rik=EXTRACT(YEAR FROM zapyso.data);

IF b THEN s:=s+zapyso.kilk; END IF;

END LOOP;

IF s>0 THEN slovo:=slovo||zapysp.naz_p||'           '||TO_CHAR(s, '99.9')||E'\n';

END IF;

END LOOP;

RETURN slovo;

END;

$$

LANGUAGE plpgsql;

select zvit_cykl(2);

                                                      Звіт

про кількість транспортованого газу по газопроводу Ямпіль-Ужгород-держкордон

станом на  17 листопада  2012 року

Підприємство                  Кількість

-----------------------------------------------

Експорттрансгаз             5.0

Прикарпаттрансгаз         2.0

    Задача 6. Виготовити звіт про розподіл кількості транспортованого газу на кожному газопроводі по підприємствах у поточному році. Навпроти назв газопроводів установити значення кількості для кожного підприємства. Передбачити підсумки по вертикалі і по горизонталі.

1  Україна                                     8 1400

3  Уренгой-Помари-Ужгород    6 1800

4  Гадяч-Париж                           7 1500

5  Гадяч-держкордон                  2   800

2  Єлецьк-Орел                            8    123

1  Київтрансгаз             Київ       

2  Гадячгазпром            Полтава    

3  Львівгазпром            Львів         

4  Прикарпаттрансгаз   Галич         

1  2  3  2010-06-12

2  2  5  2011-06-12

3  2  3  2012-07-31

4  2  5  2011-09-21

2  3  4  2012-06-13

9  4  2  2009-10-25

3  3  5  2012-12-16

2  2  2  2012-11-15

        Звіт про розподіл:

CREATE OR REPLACE FUNCTION vklc_rozpod() RETURNS text AS

$$

DECLARE

zapysp pidpr %ROWTYPE; zapyso oblik %ROWTYPE; zapysg gazpr %ROWTYPE;

slovo TEXT; s oblik.kilk %TYPE; suma oblik.kilk %TYPE; b BOOL:=FALSE;

sss oblik.kilk %TYPE:=0; ss INTEGER ARRAY[5]; i integer;

BEGIN

slovo:=repeat(' ', 40)||'Звіт'||E'\n';

slovo:=slovo ||repeat(' ', 15)||'про розподіл кількості транспортованого газу по підприємствах' ||E'\n'||E'\n';

slovo:=slovo ||'Підприємство:          ';

FOR zapysp IN SELECT * FROM pidpr LOOP

slovo:=slovo ||rpad(zapysp.naz_p,15);

END LOOP;

slovo:=slovo ||'   Сума   '||E'\n';

ss[1]:=0; ss[2]:=0; ss[3]:=0; ss[4]:=0; ss[5]:=0;

FOR zapysg IN SELECT * FROM gazpr LOOP

slovo:=slovo || rpad(zapysg.naz_g, 20) ||' '; suma:=0; i:=1;

FOR zapysp IN SELECT * FROM pidpr LOOP

s:=0;

FOR zapyso IN SELECT * FROM oblik LOOP

b:=zapyso.kod_g=zapysg.kod_g AND zapyso.kod_p=zapysp.kod_p;

IF b THEN s:=s+zapyso.kilk;END IF;

END LOOP; suma:=suma+s; ss[i]:=ss[i]+s; i:=i+1;

slovo:=slovo||TO_CHAR(s,'999999999999')||'  ';

END LOOP; i:=1;

slovo:=slovo||TO_CHAR(suma,'9999999')||E'\n';

ss[5]:=ss[5]+suma;

END LOOP;

slovo:=slovo ||repeat(' ', 14)||'Всього'||TO_CHAR(ss[1],'9999999999999')||  

                                                            TO_CHAR(ss[2],'99999999999999');

slovo:=slovo ||TO_CHAR(ss[3],'99999999999999')||TO_CHAR(ss[4],'99999999999999');

slovo:=slovo ||TO_CHAR(ss[5],'999999999')||E'\n';

RETURN slovo;

END;

$$

 LANGUAGE plpgsql;

SELECT vklc_rozpod();

                                                                   Звіт

                       про розподіл кількості транспортованого газу по підприємствах

Підприємство:                Київтрансгаз   Гадячгазпром   Львівгазпром   Прикарпаттрансг   Сума   

Україна                                      0                        3                         0                               0                 3

Уренгой-Помари-Ужгор          0                        3                         5                               0                 8

Гадяч-Париж                             0                        5                         0                               0                 5

Гадяч-держкордон                    0                        0                         0                               0                 0

Єлецьк-Орел                             0                         7                         4                               0               11

                             Всього          0                      18                          9                               0               27

 




1. состоит из измерителя и отдельного фотоэлемента с насадками
2. Стандарт Добрый день меня зовут компания соедините меня с человеком который занимается вопрос
3. Тема - Философское учение о бытии и материи
4. Арифметические типы данных Числовые константы и переменные
5. Типичными осложнениями острого аппендицита являются все кроме- а аппендикулярного инфильтрата б пара
6. Жилище как механизм решения жилищных проблем молодой семьи
7. Тема 4 АРТИСТИЗМ В СТРУКТУРЕ ЛИЧНОСТИ ПЕДАГОГА Неоднозначное отношение к набору необходимых для педагога п
8. экономическая академия Х И М И Я Методические указания и контрольные задания
9. ТЕМА МЕЖДУНАРОДНОГО ПРАВА
10. Об основах градостроительства в Российской Федерации