Baza Danych „E-Ultrasshop” - Skrypt SQL


--IF DB_ID('Ultrasshop') IS NULL -- Jeśli baza Ultrasshop nie istnieje to

--CREATE DATABASE Ultrasshop -- utwórz bazę danych


IF OBJECT_ID('Klient','U') IS NULL -- Jeśli tabela Klient nie istnieje

CREATE TABLE Klient ( -- to utwórz tabelę Klient

ID INT IDENTITY(1,1) PRIMARY KEY,

Imie VARCHAR(13),

Nazwisko VARCHAR(30),

Kod_Pocztowy VARCHAR(7),

Adres VARCHAR(30),

Miejscowosc VARCHAR(20),

Telefon INT,

Email VARCHAR(30)

)


IF OBJECT_ID('Zamowienie','U') IS NULL -- Jeśli tabela Zamowienie nie istnieje

CREATE TABLE Zamowienie ( -- to utwórz tabelę

ID INT IDENTITY(1,1) PRIMARY KEY,

Status VARCHAR(15),

Data DATETIME,

ID_Klient INT CONSTRAINT FK_ID_klienta REFERENCES Klient(ID),

)


CREATE TABLE Kategoria ( -- to utwórz tabelę Kategoria

ID INT IDENTITY (1,1) PRIMARY KEY,

Nazwa VARCHAR(15)

)


IF OBJECT_ID('Podkategoria','U') IS NULL -- Jeśli tabela Podkategoria nie istnieje

CREATE TABLE Podkategoria ( -- to utwórz tabelę Podkategoria

ID INT IDENTITY (1,1) PRIMARY KEY,

ID_Kategoria INT CONSTRAINT FK_ID_kategoria REFERENCES Kategoria(ID),

Nazwa VARCHAR(15)

)


IF OBJECT_ID('Produkt','U') IS NULL -- Jeśli tabela Produkt nie istnieje

CREATE TABLE Produkt ( -- to utwórz tabelę Produkt

ID INT IDENTITY (1,1) PRIMARY KEY,

Nazwa VARCHAR(15),

Opis TEXT,

Cena MONEY,

ID_Kategoria INT CONSTRAINT FK_ID_kategoria_in_produkt REFERENCES Kategoria(ID),

ID_Podkategoria INT CONSTRAINT FK_ID_Podkategoria_in_produkt REFERENCES Podkategoria(ID)

)


IF OBJECT_ID('Cenniki','U') IS NULL -- Jeśli tabela Cenniki nie istnieje

CREATE TABLE Cenniki ( -- to utwórz tabelę Cenniki

ID_Produktu INT CONSTRAINT FK_ID_Produktu_in_cenniki REFERENCES Produkt(ID),

Data_pocz DATETIME,

Data_kon DATETIME,

Ilosc_min INT,

Cena MONEY

)


IF OBJECT_ID('Zamowiony_produkt','U') IS NULL -- Jeśli tabela Zamowiony_produkt nie istnieje

CREATE TABLE Zamowiony_produkt ( -- to utwórz tabelę Zamowiony_produkt

ID INT IDENTITY (1,1) PRIMARY KEY,

ID_Zamowienie INT CONSTRAINT FK_ID_Zamowienie_in_zam_prod REFERENCES Zamowienie(ID),

ID_Produkt INT CONSTRAINT FK_ID_Produkt_in_zam_prod REFERENCES Produkt(ID),

Ilosc_szt INT,

Cena MONEY

)

--Wstawianie wartości do tabeli klient

INSERT INTO Klient (Imie, Nazwisko, Kod_Pocztowy, Adres, Miejscowosc, Telefon, Email)

VALUES ('Piotr','Kowalski' ,'62-010', 'Kościuszki 32', 'Pobiedziska', 669819811, 'pkowalkski@wp.pl');

INSERT INTO Klient (Imie, Nazwisko, Kod_Pocztowy, Adres, Miejscowosc, Telefon, Email)

VALUES ('Bartosz', 'Kaczmarek', '62-012', 'Lubelska 13','Luboń',618812711,'pkowalkski@wp.pl');

INSERT INTO Klient (Imie, Nazwisko, Kod_Pocztowy, Adres, Miejscowosc, Telefon, Email)

VALUES ('Kamil', 'Nowak', '41-234', 'Kwiecista 43','Poznań',724111543,'knowak@onet.pl');

INSERT INTO Klient (Imie, Nazwisko, Kod_Pocztowy, Adres, Miejscowosc, Telefon, Email)

VALUES ('Piotr', 'Jerzyński', '35-123', 'Górnicza 16', 'Poznań',693420541, 'pjerzyn@o2.pl');

INSERT INTO Klient (Imie, Nazwisko, Kod_Pocztowy, Adres, Miejscowosc, Telefon, Email)

VALUES ('Daria', 'Polakowska', '53-020', 'Piastowska 10', 'Łódź',781112211, 'dariapol@wp.pl');

INSERT INTO Klient (Imie, Nazwisko, Kod_Pocztowy, Adres, Miejscowosc, Telefon, Email)

VALUES ('Donald', 'Kaczor', '21-900', 'Różana 3', 'Warszawa',501211313, 'dkaczor@onet.pl');

INSERT INTO Klient (Imie, Nazwisko, Kod_Pocztowy, Adres, Miejscowosc, Telefon, Email)

VALUES ('Filip', 'Szulc', '62-010', 'Szucha 1', 'Kraków',721151735, 'fszulc@o2.pl');

INSERT INTO Klient (Imie, Nazwisko, Kod_Pocztowy, Adres, Miejscowosc, Telefon, Email)

VALUES ('Mateusz', 'Gibski', '21-938', 'Kościuszki 12', 'Białystok',697564392, 'mgibski@o2.pl');

INSERT INTO Klient (Imie, Nazwisko, Kod_Pocztowy, Adres, Miejscowosc, Telefon, Email)

VALUES ('Kamil', 'Rydz', '62-015', 'Piątkowska 11', 'Poznań',508267331 , 'krydz@gmail.com');

INSERT INTO Klient (Imie, Nazwisko, Kod_Pocztowy, Adres, Miejscowosc, Telefon, Email)

VALUES ('Bartosz', 'Filar', '54-012', 'Nowy Świat 3', 'Warszawa', 511748322, 'bfil@wp.pl');

INSERT INTO Klient (Imie, Nazwisko, Kod_Pocztowy, Adres, Miejscowosc, Telefon, Email)

VALUES ('Piotr', 'Olejniczak', '12-331', 'Łąkowa 445', 'Łódź', 693455544, 'polej@wp.pl');

INSERT INTO Klient (Imie, Nazwisko, Kod_Pocztowy, Adres, Miejscowosc, Telefon, Email)

VALUES ('Sławek', 'Dworski', '30-812', 'Robocza 543', 'Kraków', 723680453, 'dwora@o2.pl');

INSERT INTO Klient (Imie, Nazwisko, Kod_Pocztowy, Adres, Miejscowosc, Telefon, Email)

VALUES ('Michał', 'Kular', '43-009', 'Strusia 32', 'Białystok', 669722112, 'mkular@gmail.com');





--Wstawianie wartości do tabeli Zamowienie

INSERT INTO Zamowienie (Status, Data, ID_Klient) VALUES ('Zrealizowane', '2012-11-04' , 4);

INSERT INTO Zamowienie (Data, Status, ID_Klient) VALUES ('2011-03-21', 'Zrealizowane', 2);

INSERT INTO Zamowienie (Data, Status, ID_Klient) VALUES ('2012-11-29', 'Oczekuje', 5);

INSERT INTO Zamowienie (Data, Status, ID_Klient) VALUES ('2012-10-13', 'Zrealizowane', 2);

INSERT INTO Zamowienie (Data, Status, ID_Klient) VALUES ('2012-11-30', 'Oczekuje', 5);

INSERT INTO Zamowienie (Data, Status, ID_Klient) VALUES ('2012-03-27', 'Zrealizowane', 6);

INSERT INTO Zamowienie (Data, Status, ID_Klient) VALUES ('2012-10-28', 'Oczekuje', 3);

INSERT INTO Zamowienie (Data, Status, ID_Klient) VALUES ('2012-11-11', 'Oczekuje', 1);

INSERT INTO Zamowienie (Data, Status, ID_Klient) VALUES ('2012-09-06', 'Zrealizowane', 4);

INSERT INTO Zamowienie (Data, Status, ID_Klient) VALUES ('2011-12-09', 'Zrealizowane', 7);

INSERT INTO Zamowienie (Data, Status, ID_Klient) VALUES ('2011-08-23', 'Zrealizowane', 13);

INSERT INTO Zamowienie (Data, Status, ID_Klient) VALUES ('2011-11-09', 'Zrealizowane', 8);

INSERT INTO Zamowienie (Data, Status, ID_Klient) VALUES ('2012-04-11', 'Zrealizowane', 11);

INSERT INTO Zamowienie (Data, Status, ID_Klient) VALUES ('2012-11-04', 'Oczekuje', 9);

INSERT INTO Zamowienie (Data, Status, ID_Klient) VALUES ('2012-11-30', 'Oczekuje', 12);

INSERT INTO Zamowienie (Data, Status, ID_Klient) VALUES ('2012-03-30', 'Zrealizowane', 10);

INSERT INTO Zamowienie (Data, Status, ID_Klient) VALUES ('2012-12-01', 'Oczekuje', 2);

INSERT INTO Zamowienie (Data, Status, ID_Klient) VALUES ('2011-07-27', 'Zrealizowane', 12);

INSERT INTO Zamowienie (Data, Status, ID_Klient) VALUES ('2011-11-29', 'Zrealizowane', 9);

INSERT INTO Zamowienie (Data, Status, ID_Klient) VALUES ('2012-01-09', 'Zrealizowane', 4);

INSERT INTO Zamowienie (Data, Status, ID_Klient) VALUES ('2012-10-30', 'Oczekuje', 7);

INSERT INTO Zamowienie (Data, Status, ID_Klient) VALUES ('2011-05-12', 'Zrealizowane', 11);


--Wstawianie wartości do tabeli Kategoria

INSERT INTO Kategoria (Nazwa) VALUES ('Choreografie');

INSERT INTO Kategoria (Nazwa) VALUES ('Pirotechnika');

INSERT INTO Kategoria (Nazwa) VALUES ('Odziez');


--Wstawianie wartości do tabeli Podkategoria

INSERT INTO Podkategoria (ID_Kategoria, Nazwa) VALUES ( 1,'Farby Spray');

INSERT INTO Podkategoria (ID_Kategoria, Nazwa) VALUES ( 1,'Flagi na kiju');

INSERT INTO Podkategoria (ID_Kategoria, Nazwa) VALUES ( 2,'Race');

INSERT INTO Podkategoria (ID_Kategoria, Nazwa) VALUES ( 2,'Świece Dymne');

INSERT INTO Podkategoria (ID_Kategoria, Nazwa) VALUES ( 2,'Stroboskopy');

INSERT INTO Podkategoria (ID_Kategoria, Nazwa) VALUES ( 2,'Petardy');

INSERT INTO Podkategoria (ID_Kategoria, Nazwa) VALUES ( 2,'Wulkany');

INSERT INTO Podkategoria (ID_Kategoria, Nazwa) VALUES ( 3,'T-shirty');

INSERT INTO Podkategoria (ID_Kategoria, Nazwa) VALUES ( 3,'Szale');

INSERT INTO Podkategoria (ID_Kategoria, Nazwa) VALUES ( 3,'Czapki Zimowe');

INSERT INTO Podkategoria (ID_Kategoria, Nazwa) VALUES ( 3,'Chusty');


--Wstawianie wartości do tabeli Produkt

INSERT INTO Produkt (Nazwa, Opis, Cena, ID_Kategoria, ID_Podkategoria)

VALUES ('MONTANA', 'Czarna farba w sprayu, 600 ml', 20.00, 1, 1);

INSERT INTO Produkt (Nazwa, Opis, Cena, ID_Kategoria, ID_Podkategoria)

VALUES ('MONTANA', 'Czarna farba w sprayu, 400 ml', 15.00, 1, 1);

INSERT INTO Produkt (Nazwa, Opis, Cena, ID_Kategoria, ID_Podkategoria)

VALUES ('PANED', 'Flaga na kiju w kratę, 2m x 1m',30.00 , 1, 2);

INSERT INTO Produkt (Nazwa, Opis, Cena, ID_Kategoria, ID_Podkategoria)

VALUES ('PATTERN', 'Flaga na kiju, z wybranym wzorem, 2m x 1m', 40.00, 1, 2);

INSERT INTO Produkt (Nazwa, Opis, Cena, ID_Kategoria, ID_Podkategoria)

VALUES ('COMET', 'Czerwona raca morska', 35.00, 2, 3);

INSERT INTO Produkt (Nazwa, Opis, Cena, ID_Kategoria, ID_Podkategoria)

VALUES ('MARINE', 'Czerwona flara morska', 20.00, 2, 3);

INSERT INTO Produkt (Nazwa, Opis, Cena, ID_Kategoria, ID_Podkategoria)

VALUES ('SMOKE', 'Czarna, wojskowa świeca dymna, 250g', 40.00, 2, 4);

INSERT INTO Produkt (Nazwa, Opis, Cena, ID_Kategoria, ID_Podkategoria)

VALUES ('SMBOMB', 'Ręczne świece dymne w wybranych kolorach, 80 g', 12.00, 2, 4);

INSERT INTO Produkt (Nazwa, Opis, Cena, ID_Kategoria, ID_Podkategoria)

VALUES ('STROBOMASTER', 'Bialy stroboskop, 100 g',5.00 , 2, 5);

INSERT INTO Produkt (Nazwa, Opis, Cena, ID_Kategoria, ID_Podkategoria)

VALUES ('STROBO', 'Biały stroboskop, 30 g', 2.50, 2, 5);

INSERT INTO Produkt (Nazwa, Opis, Cena, ID_Kategoria, ID_Podkategoria)

VALUES ('ACHTUNG', 'Petarda hukowa „Achtung”', 15.00, 2, 6);

INSERT INTO Produkt (Nazwa, Opis, Cena, ID_Kategoria, ID_Podkategoria)

VALUES ('FP3', 'Petarda hukowa „FP3”', 20.00, 2, 6);

INSERT INTO Produkt (Nazwa, Opis, Cena, ID_Kategoria, ID_Podkategoria)

VALUES ('BVOLCANO', 'Duży wulkan – 1 kg', 40.00, 2, 7);

INSERT INTO Produkt (Nazwa, Opis, Cena, ID_Kategoria, ID_Podkategoria)

VALUES ('SVOLCANO', 'Mały wulkan – 400 g', 20.00, 2, 7);

INSERT INTO Produkt (Nazwa, Opis, Cena, ID_Kategoria, ID_Podkategoria)

VALUES ('T-SHIRT LECH', 'Koszulka Lecha Poznań', 35.00, 3, 8);

INSERT INTO Produkt (Nazwa, Opis, Cena, ID_Kategoria, ID_Podkategoria)

VALUES ('T-SHIRT ARKA', 'Koszulka Arki Gdynia', 35.00, 3, 8);

INSERT INTO Produkt (Nazwa, Opis, Cena, ID_Kategoria, ID_Podkategoria)

VALUES ('SZAL LECH', 'Szal tkany Lecha Poznań', 25.00, 3, 9);

INSERT INTO Produkt (Nazwa, Opis, Cena, ID_Kategoria, ID_Podkategoria)

VALUES ('SZAL CRACOVIA', 'Szal tkany Cracovii Kraków', 25.00, 3, 9);

INSERT INTO Produkt (Nazwa, Opis, Cena, ID_Kategoria, ID_Podkategoria)

VALUES ('CZAPKA KSZO', 'Czapka zimowa KSZO Ostrowiec', 20.00, 3, 10);

INSERT INTO Produkt (Nazwa, Opis, Cena, ID_Kategoria, ID_Podkategoria)

VALUES ('CZAPKA ARKA', 'Czapka zimowa Arki Gdynia', 20.00, 3, 11);

INSERT INTO Produkt (Nazwa, Opis, Cena, ID_Kategoria, ID_Podkategoria)

VALUES ('CHUSTA NSNP', 'Bandana „Nigdy Się Nie Poddawaj”', 15.00, 3, 11);

INSERT INTO Produkt (Nazwa, Opis, Cena, ID_Kategoria, ID_Podkategoria)

VALUES ('CHUSTA KKS', 'Bandana „Kibolski Klub Sportowy”', 15.00, 3, 10);


--Wstawianie wartości do tabeli Cenniki

INSERT INTO Cenniki VALUES (1,'2012-12-30','2013-01-31', 50, 15 );

INSERT INTO Cenniki VALUES (2,NULL, NULL, NULL, NULL);

INSERT INTO Cenniki VALUES (3,'2012-01-01', '2012-04-01', 20, 25);

INSERT INTO Cenniki VALUES (4,NULL, NULL, NULL, NULL);

INSERT INTO Cenniki VALUES (5,'2011-12-30', '2012-12-31', 20, 30);

INSERT INTO Cenniki VALUES (6,NULL, NULL, NULL, NULL);

INSERT INTO Cenniki VALUES (7,NULL, NULL, NULL, NULL);

INSERT INTO Cenniki VALUES (8,NULL, NULL, NULL, NULL);

INSERT INTO Cenniki VALUES (9,NULL, NULL, NULL, NULL);

INSERT INTO Cenniki VALUES (10,NULL, NULL, NULL, NULL);

INSERT INTO Cenniki VALUES (11,NULL, NULL, NULL, NULL);

INSERT INTO Cenniki VALUES (12,NULL, NULL, NULL, NULL);

INSERT INTO Cenniki VALUES (13,NULL, NULL, NULL, NULL);

INSERT INTO Cenniki VALUES (14,'2012-09-30', '2013-01-31', 20, 15);

INSERT INTO Cenniki VALUES (15,NULL, NULL, NULL, NULL);

INSERT INTO Cenniki VALUES (16,NULL, NULL, NULL, NULL);

INSERT INTO Cenniki VALUES (17,NULL, NULL, NULL, NULL);

INSERT INTO Cenniki VALUES (18,NULL, NULL, NULL, NULL);

INSERT INTO Cenniki VALUES (19,NULL, NULL, NULL, NULL);

INSERT INTO Cenniki VALUES (20,NULL, NULL, NULL, NULL);

INSERT INTO Cenniki VALUES (21,NULL, NULL, NULL, NULL);

INSERT INTO Cenniki VALUES (22,NULL, NULL, NULL, NULL);


--Wstawianie wartości do tabeli Zamowiony_Produkt

INSERT INTO Zamowiony_Produkt (ID_Zamowienie, ID_Produkt, Ilosc_Szt, Cena) VALUES ( 1, 5, 22, 330);

INSERT INTO Zamowiony_Produkt (ID_Zamowienie, ID_Produkt, Ilosc_Szt, Cena) VALUES ( 3, 1, 60, 900);

INSERT INTO Zamowiony_Produkt (ID_Zamowienie, ID_Produkt, Ilosc_Szt, Cena) VALUES ( 2, 4, 4, 160);

INSERT INTO Zamowiony_Produkt (ID_Zamowienie, ID_Produkt, Ilosc_Szt, Cena) VALUES ( 4, 6, 20, 400);

INSERT INTO Zamowiony_Produkt (ID_Zamowienie, ID_Produkt, Ilosc_Szt, Cena) VALUES ( 5, 14, 25, 375);

INSERT INTO Zamowiony_Produkt (ID_Zamowienie, ID_Produkt, Ilosc_Szt, Cena) VALUES ( 9, 12, 1, 20);

INSERT INTO Zamowiony_Produkt (ID_Zamowienie, ID_Produkt, Ilosc_Szt, Cena) VALUES ( 6, 3, 33, 825);

INSERT INTO Zamowiony_Produkt (ID_Zamowienie, ID_Produkt, Ilosc_Szt, Cena) VALUES ( 8, 17, 1, 25);

INSERT INTO Zamowiony_Produkt (ID_Zamowienie, ID_Produkt, Ilosc_Szt, Cena) VALUES ( 7, 3, 3, 90);

INSERT INTO Zamowiony_Produkt (ID_Zamowienie, ID_Produkt, Ilosc_Szt, Cena) VALUES ( 10,7, 5, 200);

INSERT INTO Zamowiony_Produkt (ID_Zamowienie, ID_Produkt, Ilosc_Szt, Cena) VALUES ( 14, 2, 12, 180);

INSERT INTO Zamowiony_Produkt (ID_Zamowienie, ID_Produkt, Ilosc_Szt, Cena) VALUES ( 13, 4, 41, 1640);

INSERT INTO Zamowiony_Produkt (ID_Zamowienie, ID_Produkt, Ilosc_Szt, Cena) VALUES ( 22, 6, 23, 460);

INSERT INTO Zamowiony_Produkt (ID_Zamowienie, ID_Produkt, Ilosc_Szt, Cena) VALUES ( 11, 6, 29, 580);

INSERT INTO Zamowiony_Produkt (ID_Zamowienie, ID_Produkt, Ilosc_Szt, Cena) VALUES ( 15, 12, 11, 220);

INSERT INTO Zamowiony_Produkt (ID_Zamowienie, ID_Produkt, Ilosc_Szt, Cena) VALUES ( 12, 5, 40, 1400);

INSERT INTO Zamowiony_Produkt (ID_Zamowienie, ID_Produkt, Ilosc_Szt, Cena) VALUES ( 20, 11, 20, 300);

INSERT INTO Zamowiony_Produkt (ID_Zamowienie, ID_Produkt, Ilosc_Szt, Cena) VALUES ( 21, 7 ,2, 80);

INSERT INTO Zamowiony_Produkt (ID_Zamowienie, ID_Produkt, Ilosc_Szt, Cena) VALUES ( 16, 6, 30, 600);

INSERT INTO Zamowiony_Produkt (ID_Zamowienie, ID_Produkt, Ilosc_Szt, Cena) VALUES ( 19,8 , 3, 36);

INSERT INTO Zamowiony_Produkt (ID_Zamowienie, ID_Produkt, Ilosc_Szt, Cena) VALUES ( 17, 5, 72, 2160);

INSERT INTO Zamowiony_Produkt (ID_Zamowienie, ID_Produkt, Ilosc_Szt, Cena) VALUES ( 18, 5, 25, 875);


--Tworzenie widoku "Wszystkie_zamowienia"

IF OBJECT_ID('Wszystkie_zamowienia','V') IS NOT NULL DROP VIEW Wszystkie_zamowienia

GO

CREATE VIEW Wszystkie_zamowienia AS

SELECT k.ID Klient_ID, k.Imie, k.Nazwisko, k.Kod_Pocztowy, k.Adres, k.Miejscowosc, k.Telefon, k.Email,

z.ID ID_Zamowienie, z.Status Status_Zamowienia, z.Data Data_Zamowienia,

zam_pro.ID ID_Zamowiony_Produkt, zam_pro.Ilosc_szt Ilosc_zamowionych_szt, zam_pro.Cena Cena_zamowienia,

p.ID ID_Produkt, p.Nazwa Nazwa_produktu, p.Opis Opis_Produktu, p.Cena Cena_za_szt,

kat.ID ID_Kategorii, kat.Nazwa Nazwa_Kategorii, pkat.ID ID_Podkategorii, pkat.Nazwa Nazwa_Podkategorii,

c.Data_pocz Promocja_od, c.Data_kon Promocja_do, c.Ilosc_min, c.Cena Cena_w_promocji


FROM Zamowienie z

INNER JOIN Zamowiony_Produkt zam_pro ON z.ID = zam_pro.ID_Zamowienie

INNER JOIN Klient k ON z.ID_Klient = k.ID

INNER JOIN Produkt p ON p.ID = zam_pro.ID_Produkt

INNER JOIN Kategoria kat ON p.ID_Kategoria = kat.ID

INNER JOIN Podkategoria pkat ON p.ID_Podkategoria = pkat.ID

INNER JOIN Cenniki c ON c.ID_Produktu = p.ID


GO



--Zestawienie ilości sprzedanych produktów z kategorii "Pirotechnika" wg miejscowości'

IF OBJECT_ID('Ile_w_kategorii','P') IS NOT NULL

DROP PROCEDURE Ile_w_kategorii

GO

CREATE PROCEDURE Ile_w_kategorii (

@Kategoria INT = 2,

@Miejscowosc VARCHAR(100)

) AS

SELECT k.Miejscowosc, SUM(zam_pro.Ilosc_Szt) Ilosc

FROM Zamowienie z

INNER JOIN Zamowiony_Produkt zam_pro ON z.ID = zam_pro.ID_Zamowienie

INNER JOIN Klient k ON z.ID_Klient = k.ID

INNER JOIN Produkt p ON p.ID = zam_pro.ID_Produkt

WHERE p.ID_Kategoria = @Kategoria AND k.Miejscowosc = @Miejscowosc

GROUP BY k.Miejscowosc

ORDER BY Ilosc ASC

GO

BEGIN TRAN

PRINT 'Zestawienie ilości sprzedanych produktów z wybranej kategorii wg miejscowości'

EXEC Ile_w_kategorii 2, 'Poznań'

ROLLBACK


-- Wykaz dla kategorii "Pirotechnika" we wszystkich miastach

SELECT k.Miejscowosc, SUM(zam_pro.Ilosc_Szt) Ilosc

FROM Zamowienie z

INNER JOIN Zamowiony_Produkt zam_pro ON z.ID = zam_pro.ID_Zamowienie

INNER JOIN Klient k ON z.ID_Klient = k.ID

INNER JOIN Produkt p ON p.ID = zam_pro.ID_Produkt

WHERE p.ID_Kategoria = 2

GROUP BY k.Miejscowosc

ORDER BY Ilosc ASC


--2) Ile wydali uzytkownicy danej witryny w e-sklepie

IF OBJECT_ID('P_Email','P') IS NOT NULL

DROP PROCEDURE P_Email

GO

CREATE PROCEDURE P_Email (

@Witryna VARCHAR(20)

) AS

SELECT k.Nazwisko, MAX(k.Email) email, SUM(zam_pro.Cena) Wplywy

FROM Klient k

LEFT JOIN Zamowienie z ON z.ID_Klient = k.ID

LEFT JOIN Zamowiony_Produkt zam_pro

ON z.ID = zam_pro.ID_Zamowienie

WHERE Email LIKE @Witryna

GROUP BY Nazwisko

GO

PRINT 'Zestawienie wydatków klientów w e-sklepie wg domeny adresu e-mail'

EXEC P_Email '%wp%';


--3) Procedura dodania nowego klienta

IF OBJECT_ID('Nowy_Klient','P') IS NOT NULL

DROP PROCEDURE Nowy_Klient

GO

CREATE PROCEDURE Nowy_Klient (

@Imie VARCHAR(30),

@Nazwisko VARCHAR(30),

@Kod_Pocztowy VARCHAR(9),

@Adres VARCHAR(30),

@Miejscowosc VARCHAR(30),

@Telefon VARCHAR(10),

@Email VARCHAR(30)

) AS


INSERT INTO Klient (Imie,Nazwisko,Kod_Pocztowy,Adres,Miejscowosc,Telefon,Email)

VALUES (@Imie, @Nazwisko, @Kod_Pocztowy, @Adres, @Miejscowosc, @Telefon, @Email)


GO


PRINT 'Dodanie nowego klienta'

EXEC Nowy_Klient 'Beata', 'Komandor', '62-123', 'Dmowskiego 12', 'Poznań', '668232331', 'bkomand@wp.pl'

SELECT *

FROM Klient

ORDER BY ID DESC



--4) Procedura dodania nowego zamówienia

IF OBJECT_ID('Nowe_Zamowienie','P') IS NOT NULL

DROP PROCEDURE Nowe_Zamowienie

GO

CREATE PROCEDURE Nowe_Zamowienie (

@ID_Klient INT,

@ID_Produkt INT,

@Ilosc_Sztuk INT,

@Data DATETIME = NULL,

@Status VARCHAR(30) = 'Oczekuje'

) AS

DECLARE @ID_Zamowienie INT

DECLARE @Cena MONEY


SET @Data=ISNULL(@Data,GETDATE()) --Wstawiam aktualną datę


--Jeżeli Cenniki.Cena != NULL i ilosc sztuk zamowionego towaru Cenniki.Ilosc_szt

IF ((SELECT Cena FROM Cenniki WHERE ID_Produktu=@ID_Produkt) IS NOT NULL) AND (SELECT Ilosc_min FROM Cenniki WHERE

ID_Produktu=@ID_Produkt)<=@Ilosc_sztuk

SET @Cena=@Ilosc_sztuk*(SELECT Cena FROM Cenniki WHERE ID_Produktu=@ID_Produkt)

ELSE

SET @Cena=@Ilosc_sztuk*(SELECT Cena FROM Produkt WHERE ID=@ID_Produkt)

--

INSERT INTO Zamowienie (Status, Data, ID_Klient)

VALUES (@Status, @Data, @ID_Klient)


SET @ID_Zamowienie=(SELECT MAX(ID) FROM Zamowienie)


INSERT INTO Zamowiony_Produkt (ID_Zamowienie, ID_Produkt, Ilosc_Szt, Cena)

VALUES (@ID_Zamowienie, @ID_Produkt, @Ilosc_Sztuk, @Cena)


GO

PRINT 'Nowe zamowienie Kamila Rydz na race Comet w ilosci 50 szt (promocyjna cena)'

EXEC Nowe_Zamowienie 9, 5, 50


SELECT *

FROM Wszystkie_Zamowienia

ORDER BY ID_Zamowiony_Produkt DESC


--5) Zestawienie pięciu najlepszych zamówień

SELECT TOP 5 Cena_zamowienia, Nazwisko Nazwisko_klienta, Miejscowosc,

Status_Zamowienia,Ilosc_zamowionych_szt, Cena_zamowienia,

Nazwa_produktu, Opis_Produktu,

Nazwa_Podkategorii,

Cena_w_promocji

FROM Wszystkie_zamowienia

ORDER BY Wszystkie_zamowienia.Cena_zamowienia DESC