Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Funkce #22

Open
Tracked by #13
Jitralar opened this issue Dec 8, 2024 · 1 comment
Open
Tracked by #13

Funkce #22

Jitralar opened this issue Dec 8, 2024 · 1 comment

Comments

@Jitralar
Copy link
Owner

Jitralar commented Dec 8, 2024

3 funkce různého typu s odpovídající složitostí, triviální a podobné funkce nebudou uznány, každá z funkcí musí mít odlišný výstup, tedy pracovat s různými operacemi. Do těchto funkcí nebudou počítány funkce převzaté ze cvičení

@Jitralar Jitralar mentioned this issue Dec 8, 2024
33 tasks
@Jitralar
Copy link
Owner Author

Jitralar commented Dec 8, 2024

CREATE OR REPLACE FUNCTION historie_bydliste(p_id_klient NUMBER)
RETURN VARCHAR2
IS
    v_historie VARCHAR2(4000);
BEGIN
    SELECT LISTAGG(a.mesto, ', ') WITHIN GROUP (ORDER BY a.id_adresa)
    INTO v_historie
    FROM adresa a
    JOIN klient k ON k.adresa_id_adresa = a.id_adresa
    WHERE k.id_klient = p_id_klient;

    RETURN NVL(v_historie, 'Žádná historie');
END;
/

CREATE OR REPLACE FUNCTION ziskej_adresu_klienta(p_klient_id NUMBER)
RETURN VARCHAR2
IS
    v_adresa VARCHAR2(255);
BEGIN
    SELECT k.jmeno || ' ' || k.prijmeni || ', ' || a.ulice || ' ' || a.cislo_popisne || ', ' || a.mesto
    INTO v_adresa
    FROM klient k
    JOIN adresa a ON k.adresa_id_adresa = a.id_adresa
    WHERE k.id_klient = p_klient_id;

    RETURN v_adresa;
END;
/
CREATE OR REPLACE FUNCTION zvys_prijem(p_klient_id NUMBER, p_procenta NUMBER)
RETURN NUMBER
IS
    v_novy_prijem NUMBER;
BEGIN
    UPDATE klient
    SET prijem = prijem + prijem * (p_procenta / 100)
    WHERE id_klient = p_klient_id
    RETURNING prijem INTO v_novy_prijem;

    RETURN v_novy_prijem;
END;
/
CREATE OR REPLACE FUNCTION prumer_prijmu_v_meste(p_mesto VARCHAR2)
RETURN NUMBER
IS
    v_prumer_prijmu NUMBER;
BEGIN
    SELECT AVG(prijem)
    INTO v_prumer_prijmu
    FROM klient k
    JOIN adresa a ON k.adresa_id_adresa = a.id_adresa
    WHERE a.mesto = p_mesto;

    RETURN v_prumer_prijmu;
END;


@Jitralar Jitralar changed the title min. 3 funkce různého typu s odpovídající složitostí, triviální a podobné funkce nebudou uznány, každá z funkcí musí mít odlišný výstup, tedy pracovat s různými operacemi. Do těchto funkcí nebudou počítány funkce převzaté ze cvičení; Funkce Dec 8, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant