Skip to content

Instantly share code, notes, and snippets.

@rmitula
Created June 28, 2018 05:20
Show Gist options
  • Save rmitula/c456b2bd1b87519d258a96c608a2fa73 to your computer and use it in GitHub Desktop.
Save rmitula/c456b2bd1b87519d258a96c608a2fa73 to your computer and use it in GitHub Desktop.
-- podnies place pracownikow ktorzy maja wiecej niz 2 kleintow
-- GIT GUCCI
--UPDATE PRACOWNICY xd
--SET xd.PENSJA = xd.PENSJA*1.2
--WHERE (SELECT COUNT(ID_KLIENTA) FROM KLIENCI WHERE xd.ID_PRACOWNIKA = KLIENCI.ID_PRACOWNIKA GROUP BY xd.ID_PRACOWNIKA) > 2;
-- wyswietlic max i min zamowien dla poszcz klientow
-- GUCCI
--SELECT KLIENCI.NAZWA, COALESCE(MIN(ZAMOWIENIA.WARTOSC), 0), COALESCE(MAX(ZAMOWIENIA.WARTOSC), 0)
--FROM ZAMOWIENIA
--RIGHT JOIN KLIENCI USING(ID_KLIENTA)
--GROUP BY KLIENCI.NAZWA;
-- ZWIEKSZYC PENSJE PRACOWNIKOW W DZIALE SALES O 1%
--UPDATE PRACOWNICY xd
--SET xd.PENSJA = xd.PENSJA * 1.01
--WHERE xd.ID_WYDZIALU = (SELECT WYDZIALY.ID_WYDZIALU FROM WYDZIALY WHERE WYDZIALY.NAZWA = 'SALES' AND xd.ID_WYDZIALU = WYDZIALY.ID_WYDZIALU );
---- more than one row to dodac xd.ID_WYDZIALU = WYDZIALY.ID_WYDZIALU!
-- ZALICZENIEBD.TXT
-- zmienic pensje pracownikow z accounting na +2
--UPDATE PRACOWNICY
--SET PRACOWNICY.PENSJA = PRACOWNICY.PENSJA + 2
--WHERE PRACOWNICY.ID_WYDZIALU = (SELECT WYDZIALY.ID_WYDZIALU FROM WYDZIALY WHERE WYDZIALY.NAZWA = 'ACCOUNTING');
-- ZWIEKSZ LIMIT KREDYTOWY PODWOJNIE WSZYSTKIM KLIENTOM KTORZY ZROBILI ZAKUPY PO 11-01-1991
--UPDATE KLIENCI xd
--SET xd.LIMIT_KREDYTOWY = xd.LIMIT_KREDYTOWY*2
--WHERE xd.ID_KLIENTA IN (SELECT ZAMOWIENIA.ID_KLIENTA FROM ZAMOWIENIA WHERE ZAMOWIENIA.DATA_ZAMOWIENIA > TO_DATE('11-01-1991', 'DD-MM-YYYY') AND xd.ID_KLIENTA = ZAMOWIENIA.ID_KLIENTA);
-- wyswietl zamowienia dla klientow nie z dallas
--SELECT * FROM ZAMOWIENIA xd WHERE xd.ID_KLIENTA <> all (SELECT KLIENCI.ID_KLIENTA FROM KLIENCI WHERE xd.ID_KLIENTA = KLIENCI.ID_KLIENTA AND KLIENCI.MIASTO='DALLAS')
-- jeden chuj z
--SELECT * FROM ZAMOWIENIA
--JOIN KLIENCI USING(ID_KLIENTA)
--WHERE KLIENCI.MIASTO <> 'DALLAS';
------------------------------------------------------------------------------------------------------
-- 1. Zrobione XD
-- 2.
--INSERT INTO PRACOWNICY VALUES(PRACOWNICY_SEQ.NEXTVAL, 'Mitula', 'Rafal', 'M', 672, 7698, TO_DATE('22-09-2016', 'DD-MM-YYYY'), 9000,200, 10);
-- 3.
--SELECT ZAMOWIENIA.ID_ZAMOWIENIA
--FROM ZAMOWIENIA
--WHERE ZAMOWIENIA.DATA_ZAMOWIENIA < TO_DATE('22-04-1990', 'DD-MM-YYYY');
-- 4.
--SELECT SIEDZIBY.REGION
--FROM SIEDZIBY
--WHERE SIEDZIBY.ID_SIEDZIBY <> all (SELECT WYDZIALY.ID_SIEDZIBY FROM WYDZIALY WHERE WYDZIALY.NAZWA = 'SALES' OR WYDZIALY.NAZWA='OPERATIONS');
--5
--SELECT ZAMOWIENIA.ID_ZAMOWIENIA, ZAMOWIENIA.DATA_ZAMOWIENIA, COUNT(WIERSZE_ZAMOWIEN.ID_WIERSZA_ZAM)
--FROM ZAMOWIENIA, WIERSZE_ZAMOWIEN
--WHERE ZAMOWIENIA.ID_ZAMOWIENIA = WIERSZE_ZAMOWIEN.ID_ZAMOWIENIA
--GROUP BY ZAMOWIENIA.ID_ZAMOWIENIA, ZAMOWIENIA.DATA_ZAMOWIENIA;
-- wyswietlic klienta ktorego pracownik ma mniejsza pensje od wartosci zamowienia
--SELECT DISTINCT KLIENCI.NAZWA FROM KLIENCI
--INNER JOIN PRACOWNICY USING(ID_PRACOWNIKA)
--INNER JOIN ZAMOWIENIA USING(ID_KLIENTA)
--WHERE PRACOWNICY.PENSJA < ZAMOWIENIA.WARTOSC;
-- wyswietlic pracownika ktorego data zatrudnienia bedzie wczesniejsza od daty pracownika o najwyzszej pensji oraz bedzie on na tym samym wydziale
-- PRACOWNICY.NAZWISKO, PRACOWNICY.IMIE
--FROM PRACOWNICY
--JOIN (SELECT
-- NIE WIEM
-- 2016
-- wstaw nowy rekord do pracownikow a w nim swoje imie i nazwisko, dzisiejsza data i reszta wg uznania
--INSERT INTO PRACOWNICY VALUES(PRACOWNICY_SEQ.NEXTVAL, 'Mitula', 'Rafal', 'M', 667, 7902, TO_DATE(SYSDATE, 'DD-MM-YYYY'), 9999, 300, 20);
-- pokaz wszystkich pracownikow co maja! podwladnych // Ci co sa szefami
--SELECT PRACOWNICY.NAZWISKO, PRACOWNICY.IMIE FROM PRACOWNICY WHERE ID_PRACOWNIKA IN (SELECT PRACOWNICY.ID_SZEFA FROM PRACOWNICY WHERE ID_SZEFA IS NOT NULL);
-- pokaz srednie ceny dla wyrobow, nawet dla tych ktore nie maja ceny
--SELECT WYROBY.OPIS, AVG(CENY.CENA_CENNIKOWA) AS "SREDNIA"
--FROM WYROBY
--RIGHT JOIN CENY USING (ID_PRODUKTU)
--GROUP BY WYROBY.OPIS;
-- podwoic limit kredytowo klientom, ktorzy w ciagu ostatniego miesiaca dokonali zamowien
--UPDATE KLIENCI
--SET KLIENCI.LIMIT_KREDYTOWY = KLIENCI.LIMIT_KREDYTOWY*2
--WHERE KLIENCI.ID_KLIENTA IN (SELECT ZAMOWIENIA.ID_KLIENTA FROM ZAMOWIENIA WHERE ZAMOWIENIA.DATA_ZAMOWIENIA > TO_DATE('19-10-1997', 'DD-MM-YYYY'));
-- JAK TE DATY?
-- wyswietlic zamowienia dla klientow nie z bostonu
-- GUCCI
--SELECT * FROM ZAMOWIENIA
--JOIN KLIENCI USING(ID_KLIENTA)
--WHERE KLIENCI.MIASTO NOT IN 'BOSTON';
--SELECT ZAMOWIENIA.ID_ZAMOWIENIA ID_ZAMOWIENIA,
--ZAMOWIENIA.DATA_ZAMOWIENIA DATA_ZAMOWIENIA,
--ZAMOWIENIA.ID_KLIENTA ID_KLIENTA,
--ZAMOWIENIA.DATA_WYSYLKI DATA_WYSYLKI,
--ZAMOWIENIA.WARTOSC WARTOSC
--FROM ZAMOWIENIA, KLIENCI
--WHERE (ZAMOWIENIA.ID_KLIENTA = KLIENCI.ID_KLIENTA)
--AND (KLIENCI.ID_KLIENTA NOT IN (SELECT KLIENCI.ID_KLIENTA FROM KLIENCI WHERE KLIENCI.MIASTO = 'BOSTON'));
-- WYSWIETLIC ILOSC PRACOWNIKOW NA POSZCZEGONYM ETACIE + te etaty co nie maja zadnego pracownika
--SELECT ETATY.ETAT, COUNT(PRACOWNICY.ID_PRACOWNIKA)
--FROM ETATY
--LEFT JOIN PRACOWNICY USING(ID_ETATU) group by ETATY.ETAT;
-- ZWIEKSZYC O 10% LIMIT KREDYTOWY KLIENTOM, KTORZY MAJA MIN 3 ZAMOWIENIA
--UPDATE KLIENCI xd
--SET xd.LIMIT_KREDYTOWY = xd.LIMIT_KREDYTOWY * 1.1
--WHERE (SELECT COUNT(ZAMOWIENIA.ID_ZAMOWIENIA) FROM ZAMOWIENIA WHERE xd.ID_KLIENTA = ZAMOWIENIA.ID_KLIENTA) >= 3;
-- ZESTAW 3
-- wskaz wydzialy co posiadaja tylko jednego pracownika
--SELECT DISTINCT xd.NAZWA
--FROM WYDZIALY xd
--WHERE (SELECT COUNT(PRACOWNICY.ID_WYDZIALU) FROM PRACOWNICY WHERE xd.ID_WYDZIALU = PRACOWNICY.ID_WYDZIALU GROUP BY PRACOWNICY.ID_WYDZIALU) = 1;
-- ^^ TO ZLEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
--=========================================================================
-- TAK ROBIC COUNTA;
--SELECT WYDZIALY.NAZWA, COUNT(PRACOWNICY.ID_WYDZIALU)
--FROM PRACOWNICY, WYDZIALY
--WHERE WYDZIALY.ID_WYDZIALU = PRACOWNICY.ID_WYDZIALU group by WYDZIALY.NAZWA
--HAVING COUNT(PRACOWNICY.ID_WYDZIALU) = 1;
--=========================================================================
--wskaz pracownikow ktorzy maja najwieksze obroty // najwiecej sprzedaja // suma ich zamowien jest najwieksza
--SELECT PRACOWNICY.NAZWISKO, PRACOWNICY.IMIE, SUM(ZAMOWIENIA.WARTOSC) AS "SUMA_ZAMOWIEN"
--FROM PRACOWNICY
--JOIN KLIENCI USING(ID_PRACOWNIKA)
--JOIN ZAMOWIENIA USING(ID_KLIENTA)
--GROUP BY PRACOWNICY.NAZWISKO, PRACOWNICY.IMIE
--ORDER BY SUMA_ZAMOWIEN DESC;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment