Projekt Baza Danych E Ultrasshop Skrypt SQL

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


Wyszukiwarka

Podobne podstrony:
Projekt Baza Danych E Ultrasshop Dokumentacja
Projekt Baza Danych E Ultrasshop Dokumentacja
Projekt Baza Danych E Ultrasshop Dokumentacja
projekt baza danych w46753 id 3 Nieznany
projekt baza danych w46753 id 3 Nieznany (2)
projekt baza danych w46753 id 3 Nieznany
~$ojekt Baza Danych E Ultrasshop Dokumentacja
projekt baza danych w46753
Janusz Marchewa 4Developers SQL Server nie tylko jako baza danych
Baza danych projekt
Access 2002 Projektowanie baz danych Ksiega eksperta ac22ke
Projekt Bazy Danych
Projekt bazy danych dla Przycho Nieznany
podstawy pracy z bazą danych (4 str), Ekonomia
Wzor projektu bazy danych (3), INIB rok II, PIOSI janiak
baza danych, archiwizacja
Projektowanie baz danych

więcej podobnych podstron