Advertisement
Guest User

Widoki Sybase SQL

a guest
Jan 24th, 2017
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 5.44 KB | None | 0 0
  1. //Pierwszy
  2. ALTER VIEW "DBA"."Magazyn" AS
  3. SELECT tab.Producent, tab.Model, tab.Ilosc
  4. FROM (SELECT pr.Nazwa_Producenta Producent, p.Nazwa_Podzespolu Model, p.Ilosc_Podzespolu_w_Magazynie Ilosc
  5.       FROM Podzespol p
  6.       INNER JOIN Producent pr ON (pr.NIP = p.NIP)
  7.       UNION
  8.       SELECT 'Sklep' Producent, k.Nazwa_Komputera Model, k.Iosc_Komputerow_W_Magazynie Ilosc
  9.       FROM Komputer k
  10.       ) tab
  11. ORDER BY tab.Ilosc ASC
  12.  
  13. //Drugi
  14. ALTER VIEW "DBA"."Najlepszy_sprzedawca"
  15. AS
  16. SELECT tab.PESEL, tab.Imie, tab.Nazwisko,
  17.        sp.s "Ilosc wykonanych sprzedazy",
  18.        nk.i "Imie Najlepszego klienta", nk.n "Nazwisko klienta", nk.suma "Suma zamowien",
  19.        np.idp "ID podzespolu", np.nprod Producent, np.npodz Model, np.ssp "Sprzedanych podzespolow",
  20.        nkom.idk "ID komputera", nkom.komp "Nazwa komputera", nkom.ssk "Sprzedanych komputerow"
  21. FROM (SELECT p.PESEL_Pracownika PESEL, p.Imie_Pracownkia Imie, p.Nazwisko_Pracownika Nazwisko
  22.       FROM Pracownik p
  23.       INNER JOIN Stanowisko_Pracy sp ON (sp.ID_Stanowiska = p.ID_Stanowiska)
  24.       WHERE sp.Nazwa_Stanowiska = 'Sprzedawca'
  25.      ) tab
  26. RIGHT JOIN
  27.      (SELECT TOP 1 p.PESEL_Pracownika p, COUNT(z.ID_Zamowienia) s
  28.       FROM Pracownik p
  29.       INNER JOIN Zamowienie z ON (z.PESEL_Pracownika = p.PESEL_Pracownika)
  30.       INNER JOIN Stanowisko_Pracy sp ON (sp.ID_Stanowiska = p.ID_Stanowiska)
  31.       WHERE sp.Nazwa_Stanowiska = 'Sprzedawca'
  32.       GROUP BY p.PESEL_Pracownika
  33.       ORDER BY s DESC
  34.      ) sp ON (sp.p = tab.PESEL)
  35. INNER JOIN
  36.      (SELECT TOP 1 p.PESEL_Pracownika, z.PESEL_Klienta, k.Imie_Klienta i, k.Nazwisko_Klienta n, COUNT(z.ID_Zamowienia) suma
  37.       FROM Pracownik p
  38.       INNER JOIN Zamowienie z ON (z.PESEL_Pracownika = p.PESEL_Pracownika)
  39.       INNER JOIN Klient k ON (z.PESEL_Klienta = k.PESEL_Klienta)
  40.       WHERE p.PESEL_Pracownika = (SELECT tab.PESEL_Pracownika
  41.                                   FROM(SELECT TOP 1 pp.PESEL_Pracownika, COUNT(zz.ID_Zamowienia) s
  42.                                        FROM Pracownik pp
  43.                                        INNER JOIN Zamowienie zz ON (zz.PESEL_Pracownika = pp.PESEL_Pracownika)
  44.                                        INNER JOIN Stanowisko_Pracy sp ON (sp.ID_Stanowiska = pp.ID_Stanowiska)
  45.                                        WHERE sp.Nazwa_Stanowiska = 'Sprzedawca'
  46.                                        GROUP BY pp.PESEL_Pracownika
  47.                                        ORDER BY s DESC) tab
  48.                                   )
  49.       GROUP BY p.PESEL_Pracownika, z.PESEL_Klienta, k.Imie_Klienta, k.Nazwisko_Klienta
  50.       ORDER BY suma DESC) nk ON (nk.PESEL_Pracownika = tab.PESEL)
  51. INNER JOIN
  52.      (SELECT TOP 1 z.PESEL_Pracownika, pd.ID_Podzespolu idp, prod.Nazwa_Producenta nprod, pd.Nazwa_Podzespolu npodz, SUM(pz.Ilosc) ssp
  53.       FROM Pozycja_Zamowienia pz
  54.       INNER JOIN Zamowienie z ON (pz.ID_Zamowienia = z.ID_Zamowienia)
  55.       INNER JOIN Podzespol pd ON (pz.ID_Podzespolu = pd.ID_Podzespolu)
  56.       INNER JOIN Producent prod ON (prod.NIP = pd.NIP)
  57.       WHERE z.PESEL_Pracownika = (SELECT tab.PESEL_Pracownika
  58.                                   FROM(SELECT TOP 1 pp.PESEL_Pracownika, COUNT(zz.ID_Zamowienia) s
  59.                                        FROM Pracownik pp
  60.                                        INNER JOIN Zamowienie zz ON (zz.PESEL_Pracownika = pp.PESEL_Pracownika)
  61.                                        INNER JOIN Stanowisko_Pracy sp ON (sp.ID_Stanowiska = pp.ID_Stanowiska)
  62.                                        WHERE sp.Nazwa_Stanowiska = 'Sprzedawca'
  63.                                        GROUP BY pp.PESEL_Pracownika
  64.                                        ORDER BY s DESC) tab
  65.                                   )
  66.       GROUP BY z.PESEL_Pracownika, pd.ID_Podzespolu, prod.Nazwa_Producenta, pd.Nazwa_Podzespolu
  67.       ORDER BY ssp DESC) np ON (np.PESEL_PRACOWNIKA = tab.PESEL)
  68. INNER JOIN
  69.      (SELECT TOP 1 z.PESEL_Pracownika, pz.ID_Komputera idk, k.Nazwa_Komputera komp, SUM(pz.Ilosc) ssk
  70.       FROM Pozycja_Zamowienia pz
  71.       INNER JOIN Zamowienie z ON (pz.ID_Zamowienia = z.ID_Zamowienia)
  72.       INNER JOIN Komputer k ON (k.ID_komputera = pz.ID_komputera)
  73.       WHERE z.PESEL_Pracownika = (SELECT tab.PESEL_Pracownika
  74.                                   FROM(SELECT TOP 1 pp.PESEL_Pracownika, COUNT(zz.ID_Zamowienia) s
  75.                                        FROM Pracownik pp
  76.                                        INNER JOIN Zamowienie zz ON (zz.PESEL_Pracownika = pp.PESEL_Pracownika)
  77.                                        INNER JOIN Stanowisko_Pracy sp ON (sp.ID_Stanowiska = pp.ID_Stanowiska)
  78.                                        WHERE sp.Nazwa_Stanowiska = 'Sprzedawca'
  79.                                        GROUP BY pp.PESEL_Pracownika
  80.                                        ORDER BY s DESC) tab
  81.                                   )
  82.       GROUP BY z.PESEL_Pracownika, pz.ID_Komputera, k.Nazwa_Komputera
  83.       ORDER BY ssk DESC) nkom ON (nkom.PESEL_PRACOWNIKA = tab.PESEL)
  84.  
  85. //Trzeci
  86. CREATE MATERIALIZED VIEW "DBA"."Specyfikacje" AS
  87. SELECT k.ID_Komputera LP, k.Nazwa_Komputera Nazwa, tp.Nazwa_Typu_Podzespolu Podzespol, pr.Nazwa_Producenta producent, p.Nazwa_podzespolu Model
  88. FROM Komputer k
  89. INNER JOIN Czesc_Specyfikacji cs ON (cs.ID_Specyfikacji = k.ID_Specyfikacji)
  90. INNER JOIN Podzespol p ON (p.ID_Podzespolu = cs.ID_Podzespolu)
  91. INNER JOIN Typ_Podzespolu tp ON (tp.ID_Typu_podzespolu = p.ID_Typu_Podzespolu)
  92. INNER JOIN Producent pr ON (pr.NIP = p.NIP)
  93. ORDER BY k.ID_Komputera, tp.Nazwa_Typu_Podzespolu
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement