-- Bethesda Car Rental --
USE master GO -- Drop the database if it already exists IF EXISTS ( SELECT name FROM sys.databases WHERE name = N'BethesdaCarRental1' ) DROP DATABASE BethesdaCarRental1 GO CREATE DATABASE BethesdaCarRental1 GO USE BethesdaCarRental1; GO CREATE SCHEMA Management; GO CREATE SCHEMA HumanResources; GO CREATE SCHEMA BusinessProcesses; GO CREATE TABLE Management.CarsCategoies ( Category nvarchar(20) not null, Daily money, Weekly money, Monthly money, Weekend money, Constraint PK_CarsCategoies Primary Key(Category) ); GO CREATE TABLE Management.AvailabilitiesStatus ( AvailabilityStatus nvarchar(20) not null, StatusDescription nvarchar(max), Constraint PK_AvailabilitiesStatus Primary Key(AvailabilityStatus) ); GO CREATE TABLE Management.Cars ( TagNumber nvarchar(12) not null, Category nvarchar(20), Make nvarchar(40), Model nvarchar(40), Color nvarchar(30), Doors tinyint, Passengers tinyint, AvailabilityStatus nvarchar(20), Constraint PK_Cars Primary Key(TagNumber), Constraint FK_AvailabilitiesStatus Foreign Key(AvailabilityStatus) References Management.AvailabilitiesStatus(AvailabilityStatus) ); GO CREATE TABLE HumanResources.Employees ( EmployeeNumber nchar(5) not null, FirstName nvarchar(25), LastName nvarchar(25), Title nvarchar(50), PhoneNumber nvarchar(20), Constraint PK_Employees Primary Key(EmployeeNumber) ); GO CREATE TABLE BusinessProcesses.Customers ( AccountNumber nchar(6) not null, FirstName nvarchar(25), LastName nvarchar(25), [Address] nvarchar(50), City nvarchar(50), [State] nvarchar(40), ZIPCode nvarchar(20), PhoneNumber nvarchar(20), EmailAddress nvarchar(50), Constraint PK_Customers Primary Key(AccountNumber) ); GO CREATE TABLE BusinessProcesses.OrdersStatus ( OrderStatus nvarchar(20) not null, StatusDescription nvarchar(max), Constraint PK_OrdersStatus Primary Key(OrderStatus) ); GO CREATE TABLE BusinessProcesses.RentalOrders ( RentalOrderID int identity(100001, 1) not null, RentStartProcessedBy nchar(5), RentReturnProcessedBy nchar(5), AccountNumber nchar(6), TagNumber nvarchar(12), CarCondition nvarchar(24), TankLevel nvarchar(20), MileageStart int, MileageEnd int, TotalMileage int, StartDate date, EndDate date, TotalDays int, RateApplied money, SubTotal money, TaxRate decimal(6, 2) default 7.7, -- % TaxAmount money, OrderTotal money, OrderStatus nvarchar(20), Constraint PK_RentalOrders Primary Key(RentalOrderID), Constraint FK_RentStartProcessedBy Foreign Key(RentStartProcessedBy) References HumanResources.Employees(EmployeeNumber), Constraint FK_RentReturnProcessedBy Foreign Key(RentReturnProcessedBy) References HumanResources.Employees(EmployeeNumber), Constraint FK_Customers Foreign Key(AccountNumber) References BusinessProcesses.Customers(AccountNumber), Constraint FK_Cars Foreign Key(TagNumber) References Management.Cars(TagNumber), Constraint FK_OrdersStatus Foreign Key(OrderStatus) References BusinessProcesses.OrdersStatus(OrderStatus) ); GO CREATE TABLE BusinessProcesses.Payments ( ReceiptNumber int identity(10001, 1) not null, EmployeeNumber nchar(5), PaymentDate date, RentalOrderID int, AmountPaid money, Constraint PK_Payments Primary Key(ReceiptNumber), Constraint FK_Employees Foreign Key(EmployeeNumber) References HumanResources.Employees(EmployeeNumber), Constraint FK_RentalOrders Foreign Key(RentalOrderID) References BusinessProcesses.RentalOrders(RentalOrderID) ); GO INSERT INTO Management.CarsCategoies(Category, Daily, Weekly, Monthly, Weekend) VALUES(N'Economy', 34.95, 28.75, 24.95, 24.95), (N'Compact', 38.95, 32.75, 28.95, 28.95), (N'Standard', 45.95, 39.75, 35.95, 34.95), (N'Full Size', 50, 45, 42.55, 38.95), (N'Mini Van', 55, 50, 44.95, 42.95), (N'SUV', 56.95, 52.95, 44.95, 42.95), (N'Pickup Truck', 62.95, 52.75, 46.95, 44.95), (N'Passenger Van', 69.95, 64.75, 52.75, 49.95); GO INSERT INTO Management.AvailabilitiesStatus(AvailabilityStatus) VALUES('Available'), ('Rented'), ('Needs Repair'); GO INSERT INTO Management.Cars(TagNumber, Category, Make, Model, Color, Doors, Passengers, AvailabilityStatus) VALUES(N'2AM9952', N'Economy', N'Ford', N'Fiesta SE', N'Silver Metallic', 4, 5, N'Available'), (N'6AD8274', N'Mini Van', N'Mazda', N'CX-9', N'Silver Metallic', 4, 5, N'Available'), (N'8AG3584', N'Passenger Van', N'Toyota', N'Sienna LE FWD', N'Blue Pearl', 4, 8, N'Available'), (N'KER204', N'Compact', N'Ford', N'Focus SF', N'Blue Metallic', 4, 5, N'Needs Repair'), (N'3AD9283', N'Economy', N'Kia', N'Rio EX', N'Beige', 4, 5, N'Rented'), (N'8AE9294', N'Full Size', N'Lincoln', N'MKT 3.5L', N'Silver Metallic', 4, 5, N'Available'), (N'KLT840', N'Passenger Van', N'Ford', N'E-350 XL', N'White', 3, 15, N'Available'), (N'8AL8033', N'Compact', N'Toyota', N'Corolla LE', N'Red Metallic', 4, 5, N'Available'), (N'4AF9284', N'Pickup Truck', N'Ford', N'F-150 Reg Cap 4X4', N'Black Metallic', 2, 2, N'Available'), (N'ADG279', N'SUV', N'GMC', N'Acadia SLE', N'Black', 4, 5, N'Rented'), (N'1AD8049', N'Standard', N'Dodge', N'Charger SXT', N'Silver Metallic', 4, 5, N'Needs Repair'), (N'9MD3974', N'Passenger Van', N'Toyota', N'Sienna LE FWD', N'Red Metallic', 4, 8, N'Rented'), (N'5AJ9274', N'Full Size', N'BMW', N'528i', N'Black Metallic', 4, 5, N'Available'), (N'GTH295', N'Economy', N'Kia', N'Rio EX', N'Silver Metallic', 4, 5, N'Available'), (N'8AT2408', N'Compact', N'Mazda', N'Miata MX-5', N'Red Metallic', 2, 2, N'Available'), (N'6AP2486', N'Economy', N'Fiat', N'500', N'Bordeaux', 2, 4, N'Available'), (N'2AL9485', N'Compact', N'Chrysler', N'200', N'Red Metallic', 2, 2, N'Available'), (N'DFP924', N'Passenger Van', N'Toyota', N'Sienna LE FWD', N'White', 4, 8, N'Available'), (N'2MD8382', N'SUV', N'Toyota', N'RAV4 I4 4X4', N'Blue Metallic', 4, 5, N'Available'), (N'8AR9374', N'Standard', N'Honda', N'Accord LX', N'White', 4, 5, N'Rented'), (N'5MD2084', N'Mini Van', N'Chevrolet', N'Equinox LS', N'Silver Metallic', 4, 5, N'Available'), (N'BND927', N'Economy', N'Ford', N'Fiesta SE', N'Black Metallic', 4, 5, N'Available'), (N'6AP2749', N'Compact', N'Toyota', N'Corolla LE', N'Silver Metallic', 4, 5, N'Rented'), (N'8AL7394', N'Pickup Truck', N'Ford', N'F-250 SD Reg Cab 4X4', N'Black', 2, 2, N'Available'), (N'4MD2840', N'Passenger Van', N'Chevrolet', N'2500 LS', N'Silver Metallic', 3, 15, N'Rented'), (N'G249580', N'Compact', N'Nissan', N'Sentra SR', N'Red Metallic', 4, 5, N'Available'), (N'3AK7397', N'Compact', N'Chrysler', N'200', N'Silver Metallic', 2, 2, N'Available'), (N'VGT927', N'Pickup Truck', N'Toyota', N'Tundra Dbl Cab 4X4', N'White', 2, 5, N'Available'), (N'2AT9274', N'Compact', N'Ford', N'Focus SF', N'Black', 4, 5, N'Available'), (N'6AH8429', N'Full Size', N'Lincoln', N'MKT 3.5L', N'Brown Metallic', 4, 5, N'Available'), (N'8MD9284', N'Mini Van', N'Ford', N'Escape SE I4', N'Blue Metallic', 4, 5, N'Available'), (N'PLD937', N'Compact', N'Chevrolet', N'Imapala LT', N'Silver Metallic', 4, 5, N'Needs Repair'), (N'5AK2974', N'Economy', N'Fiat', N'500', N'Silver Metallic', 2, 4, N'Available'), (N'1MD9284', N'Mini Van', N'Ford', N'Escape SE I4', N'Red Metallic', 4, 5, N'Needs Repair'), (N'SDG624', N'Standard', N'Chevrolet', N'Volt', N'Bordeaux', 4, 5, N'Available'), (N'2AR9274', N'Economy', N'Kia', N'Rio SX', N'Blue Metallic', 4, 5, N'Available'), (N'JWJ814', N'Full Size', N'Cadillac', N'CTS-V', N'Grey Metallic', 4, 5, N'Available'), (N'7MD9794', N'Compact', N'Ford', N'Focus SF', N'Red Metallic', 4, 5, N'Rented'), (N'UQW118', N'Passenger Van', N'Chevrolet', N'2500 LS', N'Silver Metallic', 3, 15, N'Available'), (N'2MD9247', N'SUV', N'Toyota', N'RAV4 I4 4X4', N'Silver Metallic', 4, 5, N'Available'); GO INSERT INTO HumanResources.Employees(EmployeeNumber, FirstName, LastName, Title, PhoneNumber) VALUES(N'92735', N'Jeffrey', N'Leucart', N'General Manager', N'240-773-2010'), (N'29268', N'Kathleen', N'Rawley', N'Technician', N'240-773-2011'), (N'73948', N'Alison', N'Garlow', N'Accounts Associates', N'240-773-2012'), (N'40508', N'David', N'Stillson', N'Accounts Manager', N'240-773-2013'), (N'24793', N'Michelle', N'Taylor', N'Accounts Associates', N'240-773-2014'), (N'20480', N'Peter', N'Futterman', N'Accounts Associates', N'240-773-2015'), (N'72084', N'Georgia', N'Rosen', N'Customer Service Representative', N'240-773-2016'), (N'38240', N'Karen', N'Blakney', N'Accounts Associates', N'240-773-2017'); GO INSERT INTO BusinessProcesses.Customers(AccountNumber, FirstName, LastName, [Address], City, [State], ZIPCode, PhoneNumber, EmailAddress) VALUES(N'203841', N'Michelle', N'Russell', N'10070 Weatherwood Drv', N'Rockville', N'MD', N'20853', N'301-773-2100', N'mrussel@googlemail.com'), (N'480308', N'Gregory', N'Strangeman', N'5530 Irving St', N'College Park', N'MD', N'20740', N'240-777-4410', N'imstrange@yahoo.com'), (N'720480', N'Marcel', N'buhler', N'6800 Haxell Crt', N'Alexandria', N'VA', N'22314', N'703-358-9074', N'mbuhler1200@hotmail.vom'), (N'270840', N'Joan', N'Altman', N'3725 South Dakota Ave NW', N'Washington', N'DC', N'20012', N'202-286-1739', N'jaltman@gmail.com'), (N'830483', N'Thomas', N'Filder', N'4905 Herrenden St', N'Arlington', N'VA', N'22204', N'703-532-5037', N'tfilderman@msn.com'), (N'824802', N'Scott', N'Bierend', N'3082 Rickenbacher Ave', N'Takoma Park', N'MD', N'20910', N'301-897-2203', N'scottbeer1@yahoo.com'); GO INSERT INTO BusinessProcesses.OrdersStatus(OrderStatus) VALUES(N'Processing'), (N'Car With Customer'), (N'Order Complete'), (N'Unknown'); GO