Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Pierwszy
- ALTER VIEW "DBA"."Magazyn" AS
- SELECT tab.Producent, tab.Model, tab.Ilosc
- FROM (SELECT pr.Nazwa_Producenta Producent, p.Nazwa_Podzespolu Model, p.Ilosc_Podzespolu_w_Magazynie Ilosc
- FROM Podzespol p
- INNER JOIN Producent pr ON (pr.NIP = p.NIP)
- UNION
- SELECT 'Sklep' Producent, k.Nazwa_Komputera Model, k.Iosc_Komputerow_W_Magazynie Ilosc
- FROM Komputer k
- ) tab
- ORDER BY tab.Ilosc ASC
- //Drugi
- ALTER VIEW "DBA"."Najlepszy_sprzedawca"
- AS
- SELECT tab.PESEL, tab.Imie, tab.Nazwisko,
- sp.s "Ilosc wykonanych sprzedazy",
- nk.i "Imie Najlepszego klienta", nk.n "Nazwisko klienta", nk.suma "Suma zamowien",
- np.idp "ID podzespolu", np.nprod Producent, np.npodz Model, np.ssp "Sprzedanych podzespolow",
- nkom.idk "ID komputera", nkom.komp "Nazwa komputera", nkom.ssk "Sprzedanych komputerow"
- FROM (SELECT p.PESEL_Pracownika PESEL, p.Imie_Pracownkia Imie, p.Nazwisko_Pracownika Nazwisko
- FROM Pracownik p
- INNER JOIN Stanowisko_Pracy sp ON (sp.ID_Stanowiska = p.ID_Stanowiska)
- WHERE sp.Nazwa_Stanowiska = 'Sprzedawca'
- ) tab
- RIGHT JOIN
- (SELECT TOP 1 p.PESEL_Pracownika p, COUNT(z.ID_Zamowienia) s
- FROM Pracownik p
- INNER JOIN Zamowienie z ON (z.PESEL_Pracownika = p.PESEL_Pracownika)
- INNER JOIN Stanowisko_Pracy sp ON (sp.ID_Stanowiska = p.ID_Stanowiska)
- WHERE sp.Nazwa_Stanowiska = 'Sprzedawca'
- GROUP BY p.PESEL_Pracownika
- ORDER BY s DESC
- ) sp ON (sp.p = tab.PESEL)
- INNER JOIN
- (SELECT TOP 1 p.PESEL_Pracownika, z.PESEL_Klienta, k.Imie_Klienta i, k.Nazwisko_Klienta n, COUNT(z.ID_Zamowienia) suma
- FROM Pracownik p
- INNER JOIN Zamowienie z ON (z.PESEL_Pracownika = p.PESEL_Pracownika)
- INNER JOIN Klient k ON (z.PESEL_Klienta = k.PESEL_Klienta)
- WHERE p.PESEL_Pracownika = (SELECT tab.PESEL_Pracownika
- FROM(SELECT TOP 1 pp.PESEL_Pracownika, COUNT(zz.ID_Zamowienia) s
- FROM Pracownik pp
- INNER JOIN Zamowienie zz ON (zz.PESEL_Pracownika = pp.PESEL_Pracownika)
- INNER JOIN Stanowisko_Pracy sp ON (sp.ID_Stanowiska = pp.ID_Stanowiska)
- WHERE sp.Nazwa_Stanowiska = 'Sprzedawca'
- GROUP BY pp.PESEL_Pracownika
- ORDER BY s DESC) tab
- )
- GROUP BY p.PESEL_Pracownika, z.PESEL_Klienta, k.Imie_Klienta, k.Nazwisko_Klienta
- ORDER BY suma DESC) nk ON (nk.PESEL_Pracownika = tab.PESEL)
- INNER JOIN
- (SELECT TOP 1 z.PESEL_Pracownika, pd.ID_Podzespolu idp, prod.Nazwa_Producenta nprod, pd.Nazwa_Podzespolu npodz, SUM(pz.Ilosc) ssp
- FROM Pozycja_Zamowienia pz
- INNER JOIN Zamowienie z ON (pz.ID_Zamowienia = z.ID_Zamowienia)
- INNER JOIN Podzespol pd ON (pz.ID_Podzespolu = pd.ID_Podzespolu)
- INNER JOIN Producent prod ON (prod.NIP = pd.NIP)
- WHERE z.PESEL_Pracownika = (SELECT tab.PESEL_Pracownika
- FROM(SELECT TOP 1 pp.PESEL_Pracownika, COUNT(zz.ID_Zamowienia) s
- FROM Pracownik pp
- INNER JOIN Zamowienie zz ON (zz.PESEL_Pracownika = pp.PESEL_Pracownika)
- INNER JOIN Stanowisko_Pracy sp ON (sp.ID_Stanowiska = pp.ID_Stanowiska)
- WHERE sp.Nazwa_Stanowiska = 'Sprzedawca'
- GROUP BY pp.PESEL_Pracownika
- ORDER BY s DESC) tab
- )
- GROUP BY z.PESEL_Pracownika, pd.ID_Podzespolu, prod.Nazwa_Producenta, pd.Nazwa_Podzespolu
- ORDER BY ssp DESC) np ON (np.PESEL_PRACOWNIKA = tab.PESEL)
- INNER JOIN
- (SELECT TOP 1 z.PESEL_Pracownika, pz.ID_Komputera idk, k.Nazwa_Komputera komp, SUM(pz.Ilosc) ssk
- FROM Pozycja_Zamowienia pz
- INNER JOIN Zamowienie z ON (pz.ID_Zamowienia = z.ID_Zamowienia)
- INNER JOIN Komputer k ON (k.ID_komputera = pz.ID_komputera)
- WHERE z.PESEL_Pracownika = (SELECT tab.PESEL_Pracownika
- FROM(SELECT TOP 1 pp.PESEL_Pracownika, COUNT(zz.ID_Zamowienia) s
- FROM Pracownik pp
- INNER JOIN Zamowienie zz ON (zz.PESEL_Pracownika = pp.PESEL_Pracownika)
- INNER JOIN Stanowisko_Pracy sp ON (sp.ID_Stanowiska = pp.ID_Stanowiska)
- WHERE sp.Nazwa_Stanowiska = 'Sprzedawca'
- GROUP BY pp.PESEL_Pracownika
- ORDER BY s DESC) tab
- )
- GROUP BY z.PESEL_Pracownika, pz.ID_Komputera, k.Nazwa_Komputera
- ORDER BY ssk DESC) nkom ON (nkom.PESEL_PRACOWNIKA = tab.PESEL)
- //Trzeci
- CREATE MATERIALIZED VIEW "DBA"."Specyfikacje" AS
- SELECT k.ID_Komputera LP, k.Nazwa_Komputera Nazwa, tp.Nazwa_Typu_Podzespolu Podzespol, pr.Nazwa_Producenta producent, p.Nazwa_podzespolu Model
- FROM Komputer k
- INNER JOIN Czesc_Specyfikacji cs ON (cs.ID_Specyfikacji = k.ID_Specyfikacji)
- INNER JOIN Podzespol p ON (p.ID_Podzespolu = cs.ID_Podzespolu)
- INNER JOIN Typ_Podzespolu tp ON (tp.ID_Typu_podzespolu = p.ID_Typu_Podzespolu)
- INNER JOIN Producent pr ON (pr.NIP = p.NIP)
- ORDER BY k.ID_Komputera, tp.Nazwa_Typu_Podzespolu
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement