-
-
Save rmitula/c456b2bd1b87519d258a96c608a2fa73 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
-- 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