-- Lambda Properties Management --
USE LambdaPropertiesManagement1; GO CREATE SCHEMA HumanResources; GO CREATE SCHEMA Rentals; GO CREATE TABLE HumanResources.Employees ( EmployeeNumber nvarchar(7) Not Null, FirstName nvarchar(25) NULL, LastName nvarchar(25) Not Null, Employee AS CONCAT(FirstName, N' ', LastName), Title nvarchar(50), Constraint PK_Employees Primary Key(EmployeeNumber) ); GO CREATE TABLE Rentals.Properties ( PropertyNumber nvarchar(10) not null, PropertyType nvarchar(25) not null, Address nvarchar(50), City nvarchar(40), State nchar(2), ZIPCode nvarchar(12), Bedrooms int, Bathrooms float, MonthlyRate money, SecurityDeposit money, OccupancyStatus nvarchar(20), Constraint PK_Apartments Primary Key(PropertyNumber) ); GO CREATE TABLE Rentals.Registrations ( RegistrationID int identity(1001, 1), RegistrationDate date, EmployeeNumber nvarchar(7), TenantCode nvarchar(10), FirstName nvarchar(25), LastName nvarchar(25), MaritalStatus nvarchar(20), NumberOfChildren smallint, PhoneNumber nvarchar(20), EmailAddress nvarchar(50), PropertyNumber nvarchar(10), RentStartDate date, Constraint PK_Registrations Primary Key(RegistrationID), Constraint FK_RegistrationsClerks Foreign Key(EmployeeNumber) References HumanResources.Employees(EmployeeNumber), Constraint FK_RegisteredProperties Foreign Key(PropertyNumber) References Rentals.Properties(PropertyNumber) ); GO CREATE TABLE Rentals.Payments ( PaymentID int identity(1, 1), PaymentDate date, EmployeeNumber nvarchar(7), RegistrationID int, AmountPaid money, Notes nvarchar(max), Constraint PK_Payments Primary Key(PaymentID), Constraint FK_PaymentsClerks Foreign Key(EmployeeNumber) References HumanResources.Employees(EmployeeNumber), Constraint FK_RegistrationsPayments Foreign Key(RegistrationID) References Rentals.Registrations(RegistrationID) ); GO CREATE VIEW Rentals.RegistrationDetails AS SELECT regs.RegistrationID, regs.RegistrationDate, CONCAT(empls.EmployeeNumber, N': ', empls.Employee) Employee, CONCAT(regs.TenantCode, N': ', regs.FirstName, N' ', regs.LastName) Tenant, regs.MaritalStatus, regs.NumberOfChildren, regs.PhoneNumber, regs.EmailAddress, CONCAT(props.PropertyNumber, N': ', props.PropertyType, N' in ', props.City, N' with ', props.Bedrooms, N' bedroom(s) and ', props.Bathrooms, N' bathroom(s). Rent = ', props.MonthlyRate, N'/month. Deposit = ', props.SecurityDeposit) PropertyDetails, regs.RentStartDate FROM Rentals.Registrations regs INNER JOIN HumanResources.Employees empls ON regs.EmployeeNumber = empls.EmployeeNumber INNER JOIN Rentals.Properties props ON regs.PropertyNumber = props.PropertyNumber; GO CREATE VIEW Rentals.PaymentsDetails AS SELECT pmts.PaymentID, pmts.PaymentDate, CONCAT(empls.EmployeeNumber, N': ', empls.Employee) ProcessedBy, CONCAT(N'Registered on ', regs.RegistrationDate, N', by ', regs.Employee, N', for ', regs.Tenant, N'. Rent Start Date: ', regs.RentStartDate) RegistrationInformation, pmts.AmountPaid, pmts.Notes FROM Rentals.Payments pmts INNER JOIN HumanResources.Employees empls ON pmts.EmployeeNumber = empls.EmployeeNumber INNER JOIN RegistrationDetails regs ON pmts.RegistrationID = regs.RegistrationID; GO INSERT INTO HumanResources.Employees(EmployeeNumber, FirstName, LastName, Title) VALUES(N'40685', N'Justine', N'Sandt', N'Rent Manager'); GO INSERT INTO HumanResources.Employees(EmployeeNumber, FirstName, LastName) VALUES(N'73048', N'Raymond', N'Wilkinson'); GO INSERT INTO HumanResources.Employees(EmployeeNumber, FirstName, LastName, Title) VALUES(N'60949', N'Mark', N'Reason', N'Maintenance Technician'), (N'38408', N'Marc', N'Knights', N'Rent Associate'), (N'14925', N'Jane', N'Proctor', N'Human Resources Manager'), (N'93947', N'Leonard', N'Goulet', N'Owner - General Manager'), (N'28048', N'Thomas', N'Wilkens', N'Bookeeper'), (N'20448', N'Nancy', N'Longhorn', N'Rent Associate'), (N'80848', N'Horace', N'Taylor', N'Maintenance Technician'), (N'61840', N'Martin', N'Schroeder', N'Rent Associate'); GO INSERT INTO Rentals.Properties VALUES(N'399475', N'Apartment', N'6802 Gulf Branch Ave #101', N'Rockville', N'MD', N'20850', 2, 2.00, 1150, 650, N'Available'), (N'508293', N'Apartment', N'6802 Gulf Branch Ave #102', N'Rockville', N'MD', N'20850', 1, 1.00, 950, 500, N'Needs Repair'), (N'729397', N'Apartment', N'6802 Gulf Branch Ave #103', N'Rockville', N'MD', N'20850', 1, 1.00, 925, 500, N'Available'), (N'928364', N'Apartment', N'6802 Gulf Branch Ave #104', N'Rockville', N'MD', N'20850', 3, 2.00, 1350, 850, N'Available'), (N'297297', N'Apartment', N'6802 Gulf Branch Ave #105', N'Rockville', N'MD', N'20850', 2, 1.00, 1150, 650, N'Available'), (N'492739', N'Apartment', N'6802 Gulf Branch Ave #106', N'Rockville', N'MD', N'20850', 3, 2.00, 1350, 850, N'Available'), (N'692797', N'Apartment', N'6802 Gulf Branch Ave #107', N'Rockville', N'MD', N'20850', 3, 2.00, 1285, 850, N'Not Ready'), (N'829475', N'Apartment', N'6802 Gulf Branch Ave #108', N'Rockville', N'MD', N'20850', 1, 1.00, 885, 500, N'Available'), (N'139749', N'Apartment', N'6802 Gulf Branch Ave #109', N'Rockville', N'MD', N'20850', 2, 2.00, 1150, 650, N'Available'), (N'369294', N'Apartment', N'6802 Gulf Branch Ave #110', N'Rockville', N'MD', N'20850', 1, 1.00, 895, 500, N'Available'), (N'502084', N'Apartment', N'6802 Gulf Branch Ave #111', N'Rockville', N'MD', N'20850', 2, 2.00, 1145, 650, N'Available'), (N'829397', N'Apartment', N'6802 Gulf Branch Ave #112', N'Rockville', N'MD', N'20850', 2, 1.00, 1085, 600, N'Available'), (N'292739', N'Apartment', N'6802 Gulf Branch Ave #201', N'Rockville', N'MD', N'20850', 2, 1.00, 1185, 650, N'Available'), (N'496055', N'Apartment', N'6802 Gulf Branch Ave #202', N'Rockville', N'MD', N'20850', 1, 1.00, 895, 500, N'Available'), (N'939595', N'Apartment', N'6802 Gulf Branch Ave #203', N'Rockville', N'MD', N'20850', 1, 1.00, 925, 500, N'Available'), (N'384068', N'Apartment', N'6802 Gulf Branch Ave #204', N'Rockville', N'MD', N'20850', 3, 2.00, 1250, 850, N'Available'), (N'824850', N'Apartment', N'6802 Gulf Branch Ave #205', N'Rockville', N'MD', N'20850', 2, 1.00, 1100, 650, N'Available'), (N'620485', N'Apartment', N'6802 Gulf Branch Ave #206', N'Rockville', N'MD', N'20850', 3, 2.00, 1300, 850, N'Available'), (N'294940', N'Apartment', N'6802 Gulf Branch Ave #207', N'Rockville', N'MD', N'20850', 3, 2.00, 1350, 850, N'Available'), (N'602048', N'Apartment', N'6802 Gulf Branch Ave #208', N'Rockville', N'MD', N'20850', 1, 1.00, 920, 500, N'Available'), (N'829479', N'Apartment', N'6802 Gulf Branch Ave #209', N'Rockville', N'MD', N'20850', 2, 2.00, 1150, 650, N'Available'), (N'280484', N'Apartment', N'6802 Gulf Branch Ave #210', N'Rockville', N'MD', N'20850', 1, 1.00, 895, 500, N'Available'), (N'602408', N'Apartment', N'6802 Gulf Branch Ave #211', N'Rockville', N'MD', N'20850', 2, 2.00, 1175, 650, N'Available'), (N'384086', N'Apartment', N'6802 Gulf Branch Ave #212', N'Rockville', N'MD', N'20850', 2, 1.00, 1075, 600, N'Available'), (N'397493', N'Apartment', N'6802 Gulf Branch Ave #301', N'Rockville', N'MD', N'20850', 2, 2.00, 1175, 650, N'Available'), (N'625941', N'Apartment', N'6802 Gulf Branch Ave #302', N'Rockville', N'MD', N'20850', 1, 1.00, 950, 500, N'Available'), (N'404950', N'Apartment', N'6802 Gulf Branch Ave #303', N'Rockville', N'MD', N'20850', 1, 1.00, 925, 500, N'Available'), (N'304806', N'Apartment', N'6802 Gulf Branch Ave #304', N'Rockville', N'MD', N'20850', 3, 2.00, 1250, 850, N'Available'), (N'844850', N'Apartment', N'6802 Gulf Branch Ave #305', N'Rockville', N'MD', N'20850', 2, 1.00, 1100, 650, N'Needs Repair'), (N'596305', N'Apartment', N'6802 Gulf Branch Ave #306', N'Rockville', N'MD', N'20850', 3, 2.00, 1300, 850, N'Available'), (N'138408', N'Apartment', N'6802 Gulf Branch Ave #307', N'Rockville', N'MD', N'20850', 3, 2.00, 1350, 850, N'Available'), (N'305860', N'Apartment', N'6802 Gulf Branch Ave #308', N'Rockville', N'MD', N'20850', 1, 1.00, 920, 500, N'Available'), (N'847584', N'Apartment', N'6802 Gulf Branch Ave #309', N'Rockville', N'MD', N'20850', 2, 2.00, 1150, 650, N'Available'), (N'746959', N'Apartment', N'6802 Gulf Branch Ave #310', N'Rockville', N'MD', N'20850', 1, 1.00, 935, 500, N'Available'), (N'359405', N'Apartment', N'6802 Gulf Branch Ave #311', N'Rockville', N'MD', N'20850', 2, 2.00, 1175, 650, N'Available'), (N'308505', N'Apartment', N'6802 Gulf Branch Ave #312', N'Rockville', N'MD', N'20850', 2, 1.00, 1075, 600, N'Available'), (N'620048', N'Apartment', N'10314 Springster Rd #1A', N'Alexandria', N'VA', N'22312', 1, 1.00, 1150, 650, N'Available'), (N'355204', N'Apartment', N'10314 Springster Rd #1B', N'Alexandria', N'VA', N'22312', 2, 1.00, 1375, 1000, N'Available'), (N'622486', N'Apartment', N'10314 Springster Rd #1C', N'Alexandria', N'VA', N'22312', 2, 2.00, 1425, 1200, N'Available'), (N'175947', N'Apartment', N'10314 Springster Rd #1D', N'Alexandria', N'VA', N'22312', 3, 2.00, 1650, 1400, N'Available'), (N'597030', N'Apartment', N'10314 Springster Rd #2A', N'Alexandria', N'VA', N'22312', 1, 1.00, 1150, 650, N'Available'), (N'682048', N'Apartment', N'10314 Springster Rd #2B', N'Alexandria', N'VA', N'22312', 2, 1.00, 1375, 1000, N'Available'), (N'927394', N'Apartment', N'10314 Springster Rd #2C', N'Alexandria', N'VA', N'22312', 2, 2.00, 1425, 1200, N'Available'), (N'350511', N'Apartment', N'10314 Springster Rd #2D', N'Alexandria', N'VA', N'22312', 3, 2.00, 1650, 1400, N'Available'), (N'628048', N'Apartment', N'10314 Springster Rd #3A', N'Alexandria', N'VA', N'22312', 1, 1.00, 1150, 650, N'Available'), (N'394695', N'Apartment', N'10314 Springster Rd #3B', N'Alexandria', N'VA', N'22312', 2, 1.00, 1375, 1000, N'Available'), (N'241600', N'Apartment', N'10314 Springster Rd #3C', N'Alexandria', N'VA', N'22312', 2, 2.00, 1425, 1200, N'Available'), (N'495596', N'Apartment', N'10314 Springster Rd #3D', N'Alexandria', N'VA', N'22312', 3, 2.00, 1650, 1400, N'Available'), (N'304060', N'Apartment', N'10316 Springster Rd #1A', N'Alexandria', N'VA', N'22312', 1, 1.00, 1250, 1000, N'Available'), (N'639496', N'Apartment', N'10316 Springster Rd #1B', N'Alexandria', N'VA', N'22312', 2, 1.00, 1450, 1200, N'Available'), (N'795007', N'Apartment', N'10316 Springster Rd #1C', N'Alexandria', N'VA', N'22312', 2, 2.00, 1600, 1400, N'Available'), (N'640494', N'Apartment', N'10316 Springster Rd #1D', N'Alexandria', N'VA', N'22312', 2, 1.00, 1500, 1200, N'Available'), (N'409496', N'Apartment', N'10316 Springster Rd #2A', N'Alexandria', N'VA', N'22312', 1, 1.00, 1250, 1000, N'Available'), (N'629595', N'Apartment', N'10316 Springster Rd #2B', N'Alexandria', N'VA', N'22312', 2, 1.00, 1450, 1200, N'Available'), (N'394060', N'Apartment', N'10316 Springster Rd #2C', N'Alexandria', N'VA', N'22312', 2, 2.00, 1600, 1400, N'Available'), (N'240504', N'Apartment', N'10316 Springster Rd #2D', N'Alexandria', N'VA', N'22312', 2, 1.00, 1500, 1200, N'Available'), (N'628408', N'Apartment', N'10316 Springster Rd #3A', N'Alexandria', N'VA', N'22312', 1, 1.00, 1250, 1000, N'Available'), (N'409362', N'Apartment', N'10316 Springster Rd #3B', N'Alexandria', N'VA', N'22312', 1, 1.00, 1450, 1200, N'Available'), (N'826497', N'Apartment', N'10316 Springster Rd #3C', N'Alexandria', N'VA', N'22312', 2, 2.00, 1600, 1400, N'Available'), (N'630496', N'Apartment', N'10316 Springster Rd #3D', N'Alexandria', N'VA', N'22312', 2, 1.00, 1500, 1000, N'Available'), (N'620952', N'Condominium', N'4606 Canterbury Ave #802', N'Bethesda', N'MD', N'20814', 1, 1.00, 1265, 850, N'Available'), (N'729384', N'Condominium', N'4606 Canterbury Ave #804', N'Bethesda', N'MD', N'20814', 2, 2.00, 1475, 1000, N'Available'), (N'609527', N'Condominium', N'3139 Orchard Ridge Ave #E2', N'Baltimore', N'MD', N'21201', 1, 1.00, 865, 500, N'Available'), (N'924959', N'Condominium', N'4606 Canterbury Ave #1012', N'Bethesda', N'MD', N'20814', 1, 1.00, 1265, 850, N'Available'), (N'682846', N'Condominium', N'3139 Orchard Ridge Ave #E4', N'Baltimore', N'MD', N'21201', 3, 2.00, 1480, 1000, N'Available'), (N'628085', N'Condominium', N'3139 Orchard Ridge Ave #W4', N'Baltimore', N'MD', N'21201', 1, 1.00, 865, 500, N'Not Ready'), (N'139740', N'Condominium', N'4606 Canterbury Ave #1014', N'Bethesda', N'MD', N'20814', 2, 2.00, 1475, 1000, N'Available'), (N'283508', N'Condominium', N'4606 Canterbury Ave #1015', N'Bethesda', N'MD', N'20814', 1, 1.00, 1265, 850, N'Available'), (N'927957', N'Condominium', N'3139 Orchard Ridge Ave #E6', N'Baltimore', N'MD', N'21201', 2, 2.00, 1150, 650, N'Available'), (N'928485', N'Townhouse', N'688 Larrington St NW', N'Washington', N'DC', N'20012', 3, 2.50, 1450, 850, N'Available'), (N'928028', N'Townhouse', N'2410 Jerridan Str NW', N'Washington', N'DC', N'20008', 4, 3.50, 2850, 1250, N'Available'), (N'248664', N'Townhouse', N'10344 Dunfield Drv', N'Columbia', N'MD', N'21045', 3, 2.50, 1850, 1200, N'Available'), (N'592739', N'Townhouse', N'8114 Parlance Rd', N'Silver Spring', N'MD', N'20902', 3, 2.50, 1580, 1250, N'Needs Repair'), (N'188483', N'Townhouse', N'1406 Great Rossy Ave', N'Columbia', N'MD', N'21045', 3, 2.50, 1665, 1200, N'Available'), (N'400486', N'Townhouse', N'1408 Great Rossy Ave', N'Columbia', N'MD', N'21045', 4, 2.50, 1200, 800, N'Available'), (N'182839', N'Townhouse', N'10708 Silver Stone Str', N'Arlington', N'VA', N'22201', 3, 2.50, 1885, 1200, N'Available'), (N'629394', N'Townhouse', N'6812 Jerry Woods Ave', N'Silver Spring', N'MD', N'20906', 3, 2.50, 1580, 1200, N'Available'), (N'248549', N'Townhouse', N'1410 Great Rossy Ave', N'Columbia', N'MD', N'21045', 4, 2.50, 2475, 1500, N'Available'), (N'240051', N'Townhouse', N'1877 Charley Rd', N'Arlington', N'VA', N'22202', 3, 1.50, 1575, 1200, N'Available'), (N'724085', N'Townhouse', N'2505 Renaissance Ln', N'Silver Spring', N'MD', N'20904', 3, 2.50, 1885, 1200, N'Available'), (N'595700', N'Townhouse', N'10224 Pleasntry Ave', N'College Park', N'MD', N'20740', 3, 2.50, 1450, 1000, N'Available'), (N'939475', N'Townhouse', N'1044 Connors Rd NW', N'Washington', N'DC', N'20004', 4, 2.50, 1775, 1200, N'Available'), (N'929475', N'Townhouse', N'1412 Great Rossy Ave', N'Columbia', N'MD', N'21045', 3, 1.50, 1750, 1200, N'Available'), (N'394960', N'Townhouse', N'1844 Willow Woodson Rd', N'Rockville', N'MD', N'20854', 3, 1.50, 1885, 1200, N'Available'), (N'884804', N'Single Family', N'8602 Jorham Drv', N'Silver Spring', N'MD', N'20906', 5, 3.50, 2880, 1000, N'Available'), (N'204058', N'Single Family', N'426 Zimmers Rd', N'Silver Spring', N'MD', N'20901', 4, 2.50, 2650, 1000, N'Available'), (N'280495', N'Single Family', N'12304 Donaldson Rd', N'College Park', N'MD', N'20740', 4, 3.50, 2500, 1000, N'Not Ready'), (N'632409', N'Single Family', N'7002 War Fair Drv', N'Arlington', N'VA', N'22201', 5, 3.50, 3200, 1500, N'Available'), (N'828479', N'Single Family', N'9910 East Rolling Rd', N'Silver Spring', N'MD', N'20910', 4, 3.50, 2485, 1200, N'Available'), (N'929375', N'Single Family', N'1505 Leamington Rd', N'College Park', N'MD', N'20740', 5, 2.50, 2600, 1500, N'Needs Repair'), (N'205840', N'Single Family', N'929 Carnage Crt', N'Gaithersburg', N'MD', N'20877', 3, 2.50, 1500, 1200, N'Available'), (N'726385', N'Single Family', N'664 Vast Armey Way', N'Alexandria', N'VA', N'22312', 4, 3.50, 2425, 1500, N'Not Ready'), (N'825940', N'Single Family', N'2214 East Jonathan Crt', N'Silver Spring', N'MD', N'20901', 3, 1.50, 1575, 1200, N'Available'), (N'620494', N'Single Family', N'8288 Prophesia Way', N'Annapolis', N'MD', N'20404', 4, 2.50, 1250, 1000, N'Needs Repair'), (N'396922', N'Single Family', N'7114 West Janitor Str', N'Rockville', N'MD', N'20854', 4, 2.50, 2650, 1500, N'Available'), (N'380685', N'Single Family', N'375 Reisters Way', N'Arlington', N'VA', N'22203', 5, 2.50, 3250, 1500, N'Needs Repair'), (N'926836', N'Single Family', N'681 Jane Mood St', N'Alexandria', N'VA', N'22312', 3, 2.50, 1890, 1200, N'Available'), (N'220470', N'Single Family', N'206 Checker Ct', N'Silver Spring', N'MD', N'20901', 5, 3.50, 2750, 1500, N'Not Ready'), (N'284957', N'Single Family', N'8249 North Plum Ave', N'Bethesda', N'MD', N'20814', 4, 3.50, 2880, 1500, N'Available'), (N'952948', N'Single Family', N'771 Glentley Rd', N'Alexandria', N'VA', N'22312', 3, 2.00, 2200, 1400, N'Needs Repair'); GO