Cześć. Słuchajcie mam problem z zadaniami.
**To są moje rozwiązania ale one nie zabardzo pokazują mój oczekiwany wynik. POMOCY PROSZĘ !!
3.CREATE VIEW nieoplacone_faktury
AS
SELECT k.imie, k.nazwisko, COUNT(f.id_faktura)
FROM klient k JOIN faktura f
ON k.id_klient=f.id_klient
GROUP BY k.imie, k.nazwisko
HAVING COUNT (f.czy_oplacona)>=0;
1.SELECT k.imie, k.nazwisko, COUNT(u.id_zamowienie)
FROM klient k JOIN koszyk u
ON k.id_klient=u.id_zamowienie
GROUP BY k.imie, k.nazwisko
ORDER BY nazwisko ASC, imie ASC;**
- Oblicz ile jest produktów w każdej kategorii.
2.Dla każdego klient oblicz ile musiał zapłacić za wszystkie zamówienia
3.Stwórz widok , który dla każdego klienta wypisze informacje ile ma nieopłaconych faktur i na jaką kwotę - Znajdź klientów dla których łaczna suma wszystkich zamówień przekracza 10 tys zł.
Tworzenie bazy
USE sklep
GO
CREATE TABLE adres (
id_adres INTEGER NOT NULL PRIMARY KEY,
ulica VARCHAR(50) NOT NULL,
numer VARCHAR(10) NOT NULL,
kod VARCHAR(20) NOT NULL,
miejscowosc VARCHAR(20) NOT NULL
);
GO
CREATE TABLE klient (
id_klient INTEGER NOT NULL PRIMARY KEY,
id_adres INTEGER NOT NULL REFERENCES adres(id_adres),
imie VARCHAR(20) NOT NULL,
nazwisko VARCHAR(20) NOT NULL,
nip CHAR(11) NOT NULL,
telefon VARCHAR(20) NOT NULL,
email VARCHAR(30) NOT NULL,
haslo VARCHAR(30) NOT NULL,
rabat INTEGER NOT NULL DEFAULT 0,
data_dodania DATE NOT NULL
);
GO
CREATE TABLE kategoria (
id_kategoria INTEGER NOT NULL PRIMARY KEY,
nazwa VARCHAR(20) NOT NULL
);
GO
GO
CREATE TABLE podkategoria (
id_podkategoria INTEGER NOT NULL PRIMARY KEY,
id_kategoria INTEGER NOT NULL REFERENCES kategoria(id_kategoria),
nazwa VARCHAR(20) NOT NULL
);
GO
CREATE TABLE pracownik (
id_pracownik INTEGER NOT NULL PRIMARY KEY,
id_adres INTEGER NOT NULL REFERENCES adres(id_adres),
imie VARCHAR(20) NOT NULL,
nazwisko VARCHAR(20) NOT NULL
);
GO
CREATE TABLE producent (
id_producent INTEGER NOT NULL PRIMARY KEY,
id_adres INTEGER NOT NULL REFERENCES adres(id_adres),
nazwa VARCHAR(20) NOT NULL
);
GO
CREATE TABLE produkt (
id_produkt INTEGER NOT NULL PRIMARY KEY,
id_producent INTEGER NOT NULL REFERENCES producent(id_producent),
id_podkategoria INTEGER NOT NULL REFERENCES podkategoria(id_podkategoria),
nazwa VARCHAR(20) NOT NULL,
opis VARCHAR(20) NOT NULL,
cena_netto INTEGER NOT NULL,
podatek INTEGER NOT NULL,
ilosc_sztuk_magazyn INTEGER NOT NULL DEFAULT 0
);
GO
CREATE TABLE status (
id_status INTEGER NOT NULL PRIMARY KEY,
nazwa VARCHAR(50) NOT NULL,
opis VARCHAR(50) NOT NULL
);
GO
CREATE TABLE zamowienie (
id_zamowienie INTEGER NOT NULL PRIMARY KEY,
id_pracownik INTEGER NOT NULL REFERENCES pracownik(id_pracownik),
id_klient INTEGER NOT NULL REFERENCES klient(id_klient),
data_zamowienia DATE NOT NULL
);
GO
CREATE TABLE koszyk (
id_produkt INTEGER NOT NULL REFERENCES produkt(id_produkt),
id_zamowienie INTEGER NOT NULL REFERENCES zamowienie(id_zamowienie),
cena_netto INTEGER NOT NULL,
podatek INTEGER NOT NULL,
ilosc_sztuk INTEGER NOT NULL DEFAULT 0,
PRIMARY KEY(id_produkt, id_zamowienie)
);
GO
CREATE TABLE zamowienie_status (
id_zamowienie INTEGER NOT NULL REFERENCES zamowienie(id_zamowienie),
id_status INTEGER NOT NULL REFERENCES status(id_status),
data_zmiany_statusu DATE NOT NULL,
uwagi VARCHAR(20) NULL,
PRIMARY KEY(id_zamowienie, id_status)
);
GO
CREATE TABLE faktura (
id_faktura INTEGER NOT NULL PRIMARY KEY,
id_zamowienie INTEGER NOT NULL REFERENCES zamowienie(id_zamowienie),
id_klient INTEGER NOT NULL REFERENCES klient(id_klient),
id_pracownik INTEGER NOT NULL REFERENCES pracownik(id_pracownik),
nr_faktury VARCHAR(20) NOT NULL,
data_wystawienie DATE NOT NULL,
data_platnosci DATE NOT NULL,
czy_oplacona INTEGER NOT NULL DEFAULT 0
);
GO