From b8d6def0a8a3bccbfbc5fcfa2cfe3f056c4af2ec Mon Sep 17 00:00:00 2001 From: Dai Date: Mon, 28 May 2018 13:45:16 +0100 Subject: [PATCH] Adding SSDT project based on the Northwind database, including INSERT. --- EF.Reverse.POCO.Generator.sln | 20 ++++ Northwind/InsertData.sql | Bin 0 -> 642208 bytes Northwind/Northwind.sqlproj | 112 ++++++++++++++++++ .../dbo/Functions/MinUnitPriceByCategory.sql | 17 +++ .../Functions/ProductsUnderThisUnitPrice.sql | 14 +++ .../TotalProductUnitPriceByCategory.sql | 22 ++++ .../dbo/Stored Procedures/CustOrderHist.sql | 7 ++ .../Stored Procedures/CustOrdersDetail.sql | 10 ++ .../Stored Procedures/CustOrdersOrders.sql | 10 ++ .../Employee Sales by Country.sql | 8 ++ .../dbo/Stored Procedures/Sales by Year.sql | 6 + .../dbo/Stored Procedures/SalesByCategory.sql | 18 +++ .../Ten Most Expensive Products.sql | 6 + Northwind/dbo/Tables/Categories.sql | 13 ++ Northwind/dbo/Tables/CustomerCustomerDemo.sql | 8 ++ Northwind/dbo/Tables/CustomerDemographics.sql | 6 + Northwind/dbo/Tables/Customers.sql | 35 ++++++ Northwind/dbo/Tables/EmployeeTerritories.sql | 8 ++ Northwind/dbo/Tables/Employees.sql | 34 ++++++ Northwind/dbo/Tables/Order Details.sql | 34 ++++++ Northwind/dbo/Tables/Orders.sql | 61 ++++++++++ Northwind/dbo/Tables/Products.sql | 45 +++++++ Northwind/dbo/Tables/Region.sql | 6 + Northwind/dbo/Tables/Shippers.sql | 7 ++ Northwind/dbo/Tables/Suppliers.sql | 26 ++++ Northwind/dbo/Tables/Territories.sql | 8 ++ .../Views/Alphabetical list of products.sql | 5 + .../dbo/Views/Category Sales for 1997.sql | 5 + Northwind/dbo/Views/Current Product List.sql | 6 + .../Views/Customer and Suppliers by City.sql | 7 ++ Northwind/dbo/Views/Invoices.sql | 19 +++ .../dbo/Views/Order Details Extended.sql | 7 ++ Northwind/dbo/Views/Order Subtotals.sql | 5 + Northwind/dbo/Views/Orders Qry.sql | 7 ++ .../dbo/Views/Product Sales for 1997.sql | 10 ++ .../Views/Products Above Average Price.sql | 6 + Northwind/dbo/Views/Products by Category.sql | 6 + Northwind/dbo/Views/Quarterly Orders.sql | 5 + .../dbo/Views/Sales Totals by Amount.sql | 7 ++ Northwind/dbo/Views/Sales by Category.sql | 12 ++ .../dbo/Views/Summary of Sales by Quarter.sql | 6 + .../dbo/Views/Summary of Sales by Year.sql | 6 + 42 files changed, 660 insertions(+) create mode 100644 Northwind/InsertData.sql create mode 100644 Northwind/Northwind.sqlproj create mode 100644 Northwind/dbo/Functions/MinUnitPriceByCategory.sql create mode 100644 Northwind/dbo/Functions/ProductsUnderThisUnitPrice.sql create mode 100644 Northwind/dbo/Functions/TotalProductUnitPriceByCategory.sql create mode 100644 Northwind/dbo/Stored Procedures/CustOrderHist.sql create mode 100644 Northwind/dbo/Stored Procedures/CustOrdersDetail.sql create mode 100644 Northwind/dbo/Stored Procedures/CustOrdersOrders.sql create mode 100644 Northwind/dbo/Stored Procedures/Employee Sales by Country.sql create mode 100644 Northwind/dbo/Stored Procedures/Sales by Year.sql create mode 100644 Northwind/dbo/Stored Procedures/SalesByCategory.sql create mode 100644 Northwind/dbo/Stored Procedures/Ten Most Expensive Products.sql create mode 100644 Northwind/dbo/Tables/Categories.sql create mode 100644 Northwind/dbo/Tables/CustomerCustomerDemo.sql create mode 100644 Northwind/dbo/Tables/CustomerDemographics.sql create mode 100644 Northwind/dbo/Tables/Customers.sql create mode 100644 Northwind/dbo/Tables/EmployeeTerritories.sql create mode 100644 Northwind/dbo/Tables/Employees.sql create mode 100644 Northwind/dbo/Tables/Order Details.sql create mode 100644 Northwind/dbo/Tables/Orders.sql create mode 100644 Northwind/dbo/Tables/Products.sql create mode 100644 Northwind/dbo/Tables/Region.sql create mode 100644 Northwind/dbo/Tables/Shippers.sql create mode 100644 Northwind/dbo/Tables/Suppliers.sql create mode 100644 Northwind/dbo/Tables/Territories.sql create mode 100644 Northwind/dbo/Views/Alphabetical list of products.sql create mode 100644 Northwind/dbo/Views/Category Sales for 1997.sql create mode 100644 Northwind/dbo/Views/Current Product List.sql create mode 100644 Northwind/dbo/Views/Customer and Suppliers by City.sql create mode 100644 Northwind/dbo/Views/Invoices.sql create mode 100644 Northwind/dbo/Views/Order Details Extended.sql create mode 100644 Northwind/dbo/Views/Order Subtotals.sql create mode 100644 Northwind/dbo/Views/Orders Qry.sql create mode 100644 Northwind/dbo/Views/Product Sales for 1997.sql create mode 100644 Northwind/dbo/Views/Products Above Average Price.sql create mode 100644 Northwind/dbo/Views/Products by Category.sql create mode 100644 Northwind/dbo/Views/Quarterly Orders.sql create mode 100644 Northwind/dbo/Views/Sales Totals by Amount.sql create mode 100644 Northwind/dbo/Views/Sales by Category.sql create mode 100644 Northwind/dbo/Views/Summary of Sales by Quarter.sql create mode 100644 Northwind/dbo/Views/Summary of Sales by Year.sql diff --git a/EF.Reverse.POCO.Generator.sln b/EF.Reverse.POCO.Generator.sln index 5f96d03f..85d4cb9f 100644 --- a/EF.Reverse.POCO.Generator.sln +++ b/EF.Reverse.POCO.Generator.sln @@ -18,6 +18,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution README.md = README.md EndProjectSection EndProject +Project("{00D1A9C2-B5F0-4AF3-8072-F6C62B433612}") = "Northwind", "Northwind\Northwind.sqlproj", "{F36D34E5-2087-4A27-8974-EBBAD4DB6D96}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -72,6 +74,24 @@ Global {14C1FD62-34DB-49B9-B35A-B363398D0914}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {14C1FD62-34DB-49B9-B35A-B363398D0914}.Release|Mixed Platforms.Build.0 = Release|Any CPU {14C1FD62-34DB-49B9-B35A-B363398D0914}.Release|x86.ActiveCfg = Release|Any CPU + {F36D34E5-2087-4A27-8974-EBBAD4DB6D96}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F36D34E5-2087-4A27-8974-EBBAD4DB6D96}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F36D34E5-2087-4A27-8974-EBBAD4DB6D96}.Debug|Any CPU.Deploy.0 = Debug|Any CPU + {F36D34E5-2087-4A27-8974-EBBAD4DB6D96}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {F36D34E5-2087-4A27-8974-EBBAD4DB6D96}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {F36D34E5-2087-4A27-8974-EBBAD4DB6D96}.Debug|Mixed Platforms.Deploy.0 = Debug|Any CPU + {F36D34E5-2087-4A27-8974-EBBAD4DB6D96}.Debug|x86.ActiveCfg = Debug|Any CPU + {F36D34E5-2087-4A27-8974-EBBAD4DB6D96}.Debug|x86.Build.0 = Debug|Any CPU + {F36D34E5-2087-4A27-8974-EBBAD4DB6D96}.Debug|x86.Deploy.0 = Debug|Any CPU + {F36D34E5-2087-4A27-8974-EBBAD4DB6D96}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F36D34E5-2087-4A27-8974-EBBAD4DB6D96}.Release|Any CPU.Build.0 = Release|Any CPU + {F36D34E5-2087-4A27-8974-EBBAD4DB6D96}.Release|Any CPU.Deploy.0 = Release|Any CPU + {F36D34E5-2087-4A27-8974-EBBAD4DB6D96}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {F36D34E5-2087-4A27-8974-EBBAD4DB6D96}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {F36D34E5-2087-4A27-8974-EBBAD4DB6D96}.Release|Mixed Platforms.Deploy.0 = Release|Any CPU + {F36D34E5-2087-4A27-8974-EBBAD4DB6D96}.Release|x86.ActiveCfg = Release|Any CPU + {F36D34E5-2087-4A27-8974-EBBAD4DB6D96}.Release|x86.Build.0 = Release|Any CPU + {F36D34E5-2087-4A27-8974-EBBAD4DB6D96}.Release|x86.Deploy.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/Northwind/InsertData.sql b/Northwind/InsertData.sql new file mode 100644 index 0000000000000000000000000000000000000000..6e096b9a67336e1ed15fefae484c0adadd61d7cf GIT binary patch literal 642208 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 + + + + Debug + AnyCPU + Northwind + 2.0 + 4.1 + {f36d34e5-2087-4a27-8974-ebbad4db6d96} + Microsoft.Data.Tools.Schema.Sql.Sql130DatabaseSchemaProvider + Database + + + Northwind + Northwind + 1033,CI + BySchemaAndSchemaType + True + v4.5 + CS + Properties + False + True + True + SQL_Latin1_General_CP1_CI_AS + PRIMARY + + + bin\Release\ + $(MSBuildProjectName).sql + False + pdbonly + true + false + true + prompt + 4 + + + bin\Debug\ + $(MSBuildProjectName).sql + false + true + full + false + true + true + prompt + 4 + + + 11.0 + + True + 11.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + PreserveNewest + + + \ No newline at end of file diff --git a/Northwind/dbo/Functions/MinUnitPriceByCategory.sql b/Northwind/dbo/Functions/MinUnitPriceByCategory.sql new file mode 100644 index 00000000..7717c495 --- /dev/null +++ b/Northwind/dbo/Functions/MinUnitPriceByCategory.sql @@ -0,0 +1,17 @@ + +CREATE FUNCTION [dbo].[MinUnitPriceByCategory] +(@categoryID INT +) +RETURNS Money +AS +BEGIN + -- Declare the return variable here + DECLARE @ResultVar Money + + -- Add the T-SQL statements to compute the return value here + SELECT @ResultVar = MIN(p.UnitPrice) FROM Products as p WHERE p.CategoryID = @categoryID + + -- Return the result of the function + RETURN @ResultVar + +END diff --git a/Northwind/dbo/Functions/ProductsUnderThisUnitPrice.sql b/Northwind/dbo/Functions/ProductsUnderThisUnitPrice.sql new file mode 100644 index 00000000..a7f19b76 --- /dev/null +++ b/Northwind/dbo/Functions/ProductsUnderThisUnitPrice.sql @@ -0,0 +1,14 @@ + + + +CREATE FUNCTION [dbo].[ProductsUnderThisUnitPrice] +(@price Money +) +RETURNS TABLE +AS +RETURN + SELECT * + FROM Products as P + Where p.UnitPrice < @price + + diff --git a/Northwind/dbo/Functions/TotalProductUnitPriceByCategory.sql b/Northwind/dbo/Functions/TotalProductUnitPriceByCategory.sql new file mode 100644 index 00000000..179ea9b2 --- /dev/null +++ b/Northwind/dbo/Functions/TotalProductUnitPriceByCategory.sql @@ -0,0 +1,22 @@ + + + +CREATE FUNCTION [dbo].[TotalProductUnitPriceByCategory] +(@categoryID int) +RETURNS Money +AS +BEGIN + -- Declare the return variable here + DECLARE @ResultVar Money + + -- Add the T-SQL statements to compute the return value here + SELECT @ResultVar = (Select SUM(UnitPrice) + from Products + where CategoryID = @categoryID) + + -- Return the result of the function + RETURN @ResultVar + +END + + diff --git a/Northwind/dbo/Stored Procedures/CustOrderHist.sql b/Northwind/dbo/Stored Procedures/CustOrderHist.sql new file mode 100644 index 00000000..bca2c7d6 --- /dev/null +++ b/Northwind/dbo/Stored Procedures/CustOrderHist.sql @@ -0,0 +1,7 @@ +CREATE PROCEDURE CustOrderHist @CustomerID nchar(5) +AS +SELECT ProductName, Total=SUM(Quantity) +FROM Products P, [Order Details] OD, Orders O, Customers C +WHERE C.CustomerID = @CustomerID +AND C.CustomerID = O.CustomerID AND O.OrderID = OD.OrderID AND OD.ProductID = P.ProductID +GROUP BY ProductName diff --git a/Northwind/dbo/Stored Procedures/CustOrdersDetail.sql b/Northwind/dbo/Stored Procedures/CustOrdersDetail.sql new file mode 100644 index 00000000..36adfb1a --- /dev/null +++ b/Northwind/dbo/Stored Procedures/CustOrdersDetail.sql @@ -0,0 +1,10 @@ + +CREATE PROCEDURE CustOrdersDetail @OrderID int +AS +SELECT ProductName, + UnitPrice=ROUND(Od.UnitPrice, 2), + Quantity, + Discount=CONVERT(int, Discount * 100), + ExtendedPrice=ROUND(CONVERT(money, Quantity * (1 - Discount) * Od.UnitPrice), 2) +FROM Products P, [Order Details] Od +WHERE Od.ProductID = P.ProductID and Od.OrderID = @OrderID diff --git a/Northwind/dbo/Stored Procedures/CustOrdersOrders.sql b/Northwind/dbo/Stored Procedures/CustOrdersOrders.sql new file mode 100644 index 00000000..2cac9699 --- /dev/null +++ b/Northwind/dbo/Stored Procedures/CustOrdersOrders.sql @@ -0,0 +1,10 @@ + +CREATE PROCEDURE CustOrdersOrders @CustomerID nchar(5) +AS +SELECT OrderID, + OrderDate, + RequiredDate, + ShippedDate +FROM Orders +WHERE CustomerID = @CustomerID +ORDER BY OrderID diff --git a/Northwind/dbo/Stored Procedures/Employee Sales by Country.sql b/Northwind/dbo/Stored Procedures/Employee Sales by Country.sql new file mode 100644 index 00000000..bc19594c --- /dev/null +++ b/Northwind/dbo/Stored Procedures/Employee Sales by Country.sql @@ -0,0 +1,8 @@ + +create procedure "Employee Sales by Country" +@Beginning_Date DateTime, @Ending_Date DateTime AS +SELECT Employees.Country, Employees.LastName, Employees.FirstName, Orders.ShippedDate, Orders.OrderID, "Order Subtotals".Subtotal AS SaleAmount +FROM Employees INNER JOIN + (Orders INNER JOIN "Order Subtotals" ON Orders.OrderID = "Order Subtotals".OrderID) + ON Employees.EmployeeID = Orders.EmployeeID +WHERE Orders.ShippedDate Between @Beginning_Date And @Ending_Date diff --git a/Northwind/dbo/Stored Procedures/Sales by Year.sql b/Northwind/dbo/Stored Procedures/Sales by Year.sql new file mode 100644 index 00000000..09e290f6 --- /dev/null +++ b/Northwind/dbo/Stored Procedures/Sales by Year.sql @@ -0,0 +1,6 @@ + +create procedure "Sales by Year" + @Beginning_Date DateTime, @Ending_Date DateTime AS +SELECT Orders.ShippedDate, Orders.OrderID, "Order Subtotals".Subtotal, DATENAME(yy,ShippedDate) AS Year +FROM Orders INNER JOIN "Order Subtotals" ON Orders.OrderID = "Order Subtotals".OrderID +WHERE Orders.ShippedDate Between @Beginning_Date And @Ending_Date diff --git a/Northwind/dbo/Stored Procedures/SalesByCategory.sql b/Northwind/dbo/Stored Procedures/SalesByCategory.sql new file mode 100644 index 00000000..4ffe08c4 --- /dev/null +++ b/Northwind/dbo/Stored Procedures/SalesByCategory.sql @@ -0,0 +1,18 @@ +CREATE PROCEDURE SalesByCategory + @CategoryName nvarchar(15), @OrdYear nvarchar(4) = '1998' +AS +IF @OrdYear != '1996' AND @OrdYear != '1997' AND @OrdYear != '1998' +BEGIN + SELECT @OrdYear = '1998' +END + +SELECT ProductName, + TotalPurchase=ROUND(SUM(CONVERT(decimal(14,2), OD.Quantity * (1-OD.Discount) * OD.UnitPrice)), 0) +FROM [Order Details] OD, Orders O, Products P, Categories C +WHERE OD.OrderID = O.OrderID + AND OD.ProductID = P.ProductID + AND P.CategoryID = C.CategoryID + AND C.CategoryName = @CategoryName + AND SUBSTRING(CONVERT(nvarchar(22), O.OrderDate, 111), 1, 4) = @OrdYear +GROUP BY ProductName +ORDER BY ProductName diff --git a/Northwind/dbo/Stored Procedures/Ten Most Expensive Products.sql b/Northwind/dbo/Stored Procedures/Ten Most Expensive Products.sql new file mode 100644 index 00000000..e606b87f --- /dev/null +++ b/Northwind/dbo/Stored Procedures/Ten Most Expensive Products.sql @@ -0,0 +1,6 @@ + +create procedure "Ten Most Expensive Products" AS +SET ROWCOUNT 10 +SELECT Products.ProductName AS TenMostExpensiveProducts, Products.UnitPrice +FROM Products +ORDER BY Products.UnitPrice DESC diff --git a/Northwind/dbo/Tables/Categories.sql b/Northwind/dbo/Tables/Categories.sql new file mode 100644 index 00000000..dda32ed4 --- /dev/null +++ b/Northwind/dbo/Tables/Categories.sql @@ -0,0 +1,13 @@ +CREATE TABLE [dbo].[Categories] ( + [CategoryID] INT IDENTITY (1, 1) NOT NULL, + [CategoryName] NVARCHAR (15) NOT NULL, + [Description] NTEXT NULL, + [Picture] IMAGE NULL, + CONSTRAINT [PK_Categories] PRIMARY KEY CLUSTERED ([CategoryID] ASC) +); + + +GO +CREATE NONCLUSTERED INDEX [CategoryName] + ON [dbo].[Categories]([CategoryName] ASC); + diff --git a/Northwind/dbo/Tables/CustomerCustomerDemo.sql b/Northwind/dbo/Tables/CustomerCustomerDemo.sql new file mode 100644 index 00000000..169a8a42 --- /dev/null +++ b/Northwind/dbo/Tables/CustomerCustomerDemo.sql @@ -0,0 +1,8 @@ +CREATE TABLE [dbo].[CustomerCustomerDemo] ( + [CustomerID] NCHAR (5) NOT NULL, + [CustomerTypeID] NCHAR (10) NOT NULL, + CONSTRAINT [PK_CustomerCustomerDemo] PRIMARY KEY NONCLUSTERED ([CustomerID] ASC, [CustomerTypeID] ASC), + CONSTRAINT [FK_CustomerCustomerDemo] FOREIGN KEY ([CustomerTypeID]) REFERENCES [dbo].[CustomerDemographics] ([CustomerTypeID]), + CONSTRAINT [FK_CustomerCustomerDemo_Customers] FOREIGN KEY ([CustomerID]) REFERENCES [dbo].[Customers] ([CustomerID]) +); + diff --git a/Northwind/dbo/Tables/CustomerDemographics.sql b/Northwind/dbo/Tables/CustomerDemographics.sql new file mode 100644 index 00000000..aff09996 --- /dev/null +++ b/Northwind/dbo/Tables/CustomerDemographics.sql @@ -0,0 +1,6 @@ +CREATE TABLE [dbo].[CustomerDemographics] ( + [CustomerTypeID] NCHAR (10) NOT NULL, + [CustomerDesc] NTEXT NULL, + CONSTRAINT [PK_CustomerDemographics] PRIMARY KEY NONCLUSTERED ([CustomerTypeID] ASC) +); + diff --git a/Northwind/dbo/Tables/Customers.sql b/Northwind/dbo/Tables/Customers.sql new file mode 100644 index 00000000..59e38aea --- /dev/null +++ b/Northwind/dbo/Tables/Customers.sql @@ -0,0 +1,35 @@ +CREATE TABLE [dbo].[Customers] ( + [CustomerID] NCHAR (5) NOT NULL, + [CompanyName] NVARCHAR (40) NOT NULL, + [ContactName] NVARCHAR (30) NULL, + [ContactTitle] NVARCHAR (30) NULL, + [Address] NVARCHAR (60) NULL, + [City] NVARCHAR (15) NULL, + [Region] NVARCHAR (15) NULL, + [PostalCode] NVARCHAR (10) NULL, + [Country] NVARCHAR (15) NULL, + [Phone] NVARCHAR (24) NULL, + [Fax] NVARCHAR (24) NULL, + CONSTRAINT [PK_Customers] PRIMARY KEY CLUSTERED ([CustomerID] ASC) +); + + +GO +CREATE NONCLUSTERED INDEX [City] + ON [dbo].[Customers]([City] ASC); + + +GO +CREATE NONCLUSTERED INDEX [CompanyName] + ON [dbo].[Customers]([CompanyName] ASC); + + +GO +CREATE NONCLUSTERED INDEX [PostalCode] + ON [dbo].[Customers]([PostalCode] ASC); + + +GO +CREATE NONCLUSTERED INDEX [Region] + ON [dbo].[Customers]([Region] ASC); + diff --git a/Northwind/dbo/Tables/EmployeeTerritories.sql b/Northwind/dbo/Tables/EmployeeTerritories.sql new file mode 100644 index 00000000..682e2edf --- /dev/null +++ b/Northwind/dbo/Tables/EmployeeTerritories.sql @@ -0,0 +1,8 @@ +CREATE TABLE [dbo].[EmployeeTerritories] ( + [EmployeeID] INT NOT NULL, + [TerritoryID] NVARCHAR (20) NOT NULL, + CONSTRAINT [PK_EmployeeTerritories] PRIMARY KEY NONCLUSTERED ([EmployeeID] ASC, [TerritoryID] ASC), + CONSTRAINT [FK_EmployeeTerritories_Employees] FOREIGN KEY ([EmployeeID]) REFERENCES [dbo].[Employees] ([EmployeeID]), + CONSTRAINT [FK_EmployeeTerritories_Territories] FOREIGN KEY ([TerritoryID]) REFERENCES [dbo].[Territories] ([TerritoryID]) +); + diff --git a/Northwind/dbo/Tables/Employees.sql b/Northwind/dbo/Tables/Employees.sql new file mode 100644 index 00000000..65711ea6 --- /dev/null +++ b/Northwind/dbo/Tables/Employees.sql @@ -0,0 +1,34 @@ +CREATE TABLE [dbo].[Employees] ( + [EmployeeID] INT IDENTITY (1, 1) NOT NULL, + [LastName] NVARCHAR (20) NOT NULL, + [FirstName] NVARCHAR (10) NOT NULL, + [Title] NVARCHAR (30) NULL, + [TitleOfCourtesy] NVARCHAR (25) NULL, + [BirthDate] DATETIME NULL, + [HireDate] DATETIME NULL, + [Address] NVARCHAR (60) NULL, + [City] NVARCHAR (15) NULL, + [Region] NVARCHAR (15) NULL, + [PostalCode] NVARCHAR (10) NULL, + [Country] NVARCHAR (15) NULL, + [HomePhone] NVARCHAR (24) NULL, + [Extension] NVARCHAR (4) NULL, + [Photo] IMAGE NULL, + [Notes] NTEXT NULL, + [ReportsTo] INT NULL, + [PhotoPath] NVARCHAR (255) NULL, + CONSTRAINT [PK_Employees] PRIMARY KEY CLUSTERED ([EmployeeID] ASC), + CONSTRAINT [CK_Birthdate] CHECK ([BirthDate] < getdate()), + CONSTRAINT [FK_Employees_Employees] FOREIGN KEY ([ReportsTo]) REFERENCES [dbo].[Employees] ([EmployeeID]) +); + + +GO +CREATE NONCLUSTERED INDEX [LastName] + ON [dbo].[Employees]([LastName] ASC); + + +GO +CREATE NONCLUSTERED INDEX [PostalCode] + ON [dbo].[Employees]([PostalCode] ASC); + diff --git a/Northwind/dbo/Tables/Order Details.sql b/Northwind/dbo/Tables/Order Details.sql new file mode 100644 index 00000000..764aa2e3 --- /dev/null +++ b/Northwind/dbo/Tables/Order Details.sql @@ -0,0 +1,34 @@ +CREATE TABLE [dbo].[Order Details] ( + [OrderID] INT NOT NULL, + [ProductID] INT NOT NULL, + [UnitPrice] MONEY CONSTRAINT [DF_Order_Details_UnitPrice] DEFAULT (0) NOT NULL, + [Quantity] SMALLINT CONSTRAINT [DF_Order_Details_Quantity] DEFAULT (1) NOT NULL, + [Discount] REAL CONSTRAINT [DF_Order_Details_Discount] DEFAULT (0) NOT NULL, + CONSTRAINT [PK_Order_Details] PRIMARY KEY CLUSTERED ([OrderID] ASC, [ProductID] ASC), + CONSTRAINT [CK_Discount] CHECK ([Discount] >= 0 and [Discount] <= 1), + CONSTRAINT [CK_Quantity] CHECK ([Quantity] > 0), + CONSTRAINT [CK_UnitPrice] CHECK ([UnitPrice] >= 0), + CONSTRAINT [FK_Order_Details_Orders] FOREIGN KEY ([OrderID]) REFERENCES [dbo].[Orders] ([OrderID]), + CONSTRAINT [FK_Order_Details_Products] FOREIGN KEY ([ProductID]) REFERENCES [dbo].[Products] ([ProductID]) +); + + +GO +CREATE NONCLUSTERED INDEX [OrderID] + ON [dbo].[Order Details]([OrderID] ASC); + + +GO +CREATE NONCLUSTERED INDEX [OrdersOrder_Details] + ON [dbo].[Order Details]([OrderID] ASC); + + +GO +CREATE NONCLUSTERED INDEX [ProductID] + ON [dbo].[Order Details]([ProductID] ASC); + + +GO +CREATE NONCLUSTERED INDEX [ProductsOrder_Details] + ON [dbo].[Order Details]([ProductID] ASC); + diff --git a/Northwind/dbo/Tables/Orders.sql b/Northwind/dbo/Tables/Orders.sql new file mode 100644 index 00000000..2cce3248 --- /dev/null +++ b/Northwind/dbo/Tables/Orders.sql @@ -0,0 +1,61 @@ +CREATE TABLE [dbo].[Orders] ( + [OrderID] INT IDENTITY (1, 1) NOT NULL, + [CustomerID] NCHAR (5) NULL, + [EmployeeID] INT NULL, + [OrderDate] DATETIME NULL, + [RequiredDate] DATETIME NULL, + [ShippedDate] DATETIME NULL, + [ShipVia] INT NULL, + [Freight] MONEY CONSTRAINT [DF_Orders_Freight] DEFAULT (0) NULL, + [ShipName] NVARCHAR (40) NULL, + [ShipAddress] NVARCHAR (60) NULL, + [ShipCity] NVARCHAR (15) NULL, + [ShipRegion] NVARCHAR (15) NULL, + [ShipPostalCode] NVARCHAR (10) NULL, + [ShipCountry] NVARCHAR (15) NULL, + CONSTRAINT [PK_Orders] PRIMARY KEY CLUSTERED ([OrderID] ASC), + CONSTRAINT [FK_Orders_Customers] FOREIGN KEY ([CustomerID]) REFERENCES [dbo].[Customers] ([CustomerID]), + CONSTRAINT [FK_Orders_Employees] FOREIGN KEY ([EmployeeID]) REFERENCES [dbo].[Employees] ([EmployeeID]), + CONSTRAINT [FK_Orders_Shippers] FOREIGN KEY ([ShipVia]) REFERENCES [dbo].[Shippers] ([ShipperID]) +); + + +GO +CREATE NONCLUSTERED INDEX [CustomerID] + ON [dbo].[Orders]([CustomerID] ASC); + + +GO +CREATE NONCLUSTERED INDEX [CustomersOrders] + ON [dbo].[Orders]([CustomerID] ASC); + + +GO +CREATE NONCLUSTERED INDEX [EmployeeID] + ON [dbo].[Orders]([EmployeeID] ASC); + + +GO +CREATE NONCLUSTERED INDEX [EmployeesOrders] + ON [dbo].[Orders]([EmployeeID] ASC); + + +GO +CREATE NONCLUSTERED INDEX [OrderDate] + ON [dbo].[Orders]([OrderDate] ASC); + + +GO +CREATE NONCLUSTERED INDEX [ShippedDate] + ON [dbo].[Orders]([ShippedDate] ASC); + + +GO +CREATE NONCLUSTERED INDEX [ShippersOrders] + ON [dbo].[Orders]([ShipVia] ASC); + + +GO +CREATE NONCLUSTERED INDEX [ShipPostalCode] + ON [dbo].[Orders]([ShipPostalCode] ASC); + diff --git a/Northwind/dbo/Tables/Products.sql b/Northwind/dbo/Tables/Products.sql new file mode 100644 index 00000000..f1652938 --- /dev/null +++ b/Northwind/dbo/Tables/Products.sql @@ -0,0 +1,45 @@ +CREATE TABLE [dbo].[Products] ( + [ProductID] INT IDENTITY (1, 1) NOT NULL, + [ProductName] NVARCHAR (40) NOT NULL, + [SupplierID] INT NULL, + [CategoryID] INT NULL, + [QuantityPerUnit] NVARCHAR (20) NULL, + [UnitPrice] MONEY CONSTRAINT [DF_Products_UnitPrice] DEFAULT (0) NULL, + [UnitsInStock] SMALLINT CONSTRAINT [DF_Products_UnitsInStock] DEFAULT (0) NULL, + [UnitsOnOrder] SMALLINT CONSTRAINT [DF_Products_UnitsOnOrder] DEFAULT (0) NULL, + [ReorderLevel] SMALLINT CONSTRAINT [DF_Products_ReorderLevel] DEFAULT (0) NULL, + [Discontinued] BIT CONSTRAINT [DF_Products_Discontinued] DEFAULT (0) NOT NULL, + CONSTRAINT [PK_Products] PRIMARY KEY CLUSTERED ([ProductID] ASC), + CONSTRAINT [CK_Products_UnitPrice] CHECK ([UnitPrice] >= 0), + CONSTRAINT [CK_ReorderLevel] CHECK ([ReorderLevel] >= 0), + CONSTRAINT [CK_UnitsInStock] CHECK ([UnitsInStock] >= 0), + CONSTRAINT [CK_UnitsOnOrder] CHECK ([UnitsOnOrder] >= 0), + CONSTRAINT [FK_Products_Categories] FOREIGN KEY ([CategoryID]) REFERENCES [dbo].[Categories] ([CategoryID]), + CONSTRAINT [FK_Products_Suppliers] FOREIGN KEY ([SupplierID]) REFERENCES [dbo].[Suppliers] ([SupplierID]) +); + + +GO +CREATE NONCLUSTERED INDEX [CategoriesProducts] + ON [dbo].[Products]([CategoryID] ASC); + + +GO +CREATE NONCLUSTERED INDEX [CategoryID] + ON [dbo].[Products]([CategoryID] ASC); + + +GO +CREATE NONCLUSTERED INDEX [ProductName] + ON [dbo].[Products]([ProductName] ASC); + + +GO +CREATE NONCLUSTERED INDEX [SupplierID] + ON [dbo].[Products]([SupplierID] ASC); + + +GO +CREATE NONCLUSTERED INDEX [SuppliersProducts] + ON [dbo].[Products]([SupplierID] ASC); + diff --git a/Northwind/dbo/Tables/Region.sql b/Northwind/dbo/Tables/Region.sql new file mode 100644 index 00000000..bc0279fe --- /dev/null +++ b/Northwind/dbo/Tables/Region.sql @@ -0,0 +1,6 @@ +CREATE TABLE [dbo].[Region] ( + [RegionID] INT NOT NULL, + [RegionDescription] NCHAR (50) NOT NULL, + CONSTRAINT [PK_Region] PRIMARY KEY NONCLUSTERED ([RegionID] ASC) +); + diff --git a/Northwind/dbo/Tables/Shippers.sql b/Northwind/dbo/Tables/Shippers.sql new file mode 100644 index 00000000..4d18164f --- /dev/null +++ b/Northwind/dbo/Tables/Shippers.sql @@ -0,0 +1,7 @@ +CREATE TABLE [dbo].[Shippers] ( + [ShipperID] INT IDENTITY (1, 1) NOT NULL, + [CompanyName] NVARCHAR (40) NOT NULL, + [Phone] NVARCHAR (24) NULL, + CONSTRAINT [PK_Shippers] PRIMARY KEY CLUSTERED ([ShipperID] ASC) +); + diff --git a/Northwind/dbo/Tables/Suppliers.sql b/Northwind/dbo/Tables/Suppliers.sql new file mode 100644 index 00000000..4c85013d --- /dev/null +++ b/Northwind/dbo/Tables/Suppliers.sql @@ -0,0 +1,26 @@ +CREATE TABLE [dbo].[Suppliers] ( + [SupplierID] INT IDENTITY (1, 1) NOT NULL, + [CompanyName] NVARCHAR (40) NOT NULL, + [ContactName] NVARCHAR (30) NULL, + [ContactTitle] NVARCHAR (30) NULL, + [Address] NVARCHAR (60) NULL, + [City] NVARCHAR (15) NULL, + [Region] NVARCHAR (15) NULL, + [PostalCode] NVARCHAR (10) NULL, + [Country] NVARCHAR (15) NULL, + [Phone] NVARCHAR (24) NULL, + [Fax] NVARCHAR (24) NULL, + [HomePage] NTEXT NULL, + CONSTRAINT [PK_Suppliers] PRIMARY KEY CLUSTERED ([SupplierID] ASC) +); + + +GO +CREATE NONCLUSTERED INDEX [CompanyName] + ON [dbo].[Suppliers]([CompanyName] ASC); + + +GO +CREATE NONCLUSTERED INDEX [PostalCode] + ON [dbo].[Suppliers]([PostalCode] ASC); + diff --git a/Northwind/dbo/Tables/Territories.sql b/Northwind/dbo/Tables/Territories.sql new file mode 100644 index 00000000..19d69e8e --- /dev/null +++ b/Northwind/dbo/Tables/Territories.sql @@ -0,0 +1,8 @@ +CREATE TABLE [dbo].[Territories] ( + [TerritoryID] NVARCHAR (20) NOT NULL, + [TerritoryDescription] NCHAR (50) NOT NULL, + [RegionID] INT NOT NULL, + CONSTRAINT [PK_Territories] PRIMARY KEY NONCLUSTERED ([TerritoryID] ASC), + CONSTRAINT [FK_Territories_Region] FOREIGN KEY ([RegionID]) REFERENCES [dbo].[Region] ([RegionID]) +); + diff --git a/Northwind/dbo/Views/Alphabetical list of products.sql b/Northwind/dbo/Views/Alphabetical list of products.sql new file mode 100644 index 00000000..d500b6b7 --- /dev/null +++ b/Northwind/dbo/Views/Alphabetical list of products.sql @@ -0,0 +1,5 @@ + +create view "Alphabetical list of products" AS +SELECT Products.*, Categories.CategoryName +FROM Categories INNER JOIN Products ON Categories.CategoryID = Products.CategoryID +WHERE (((Products.Discontinued)=0)) diff --git a/Northwind/dbo/Views/Category Sales for 1997.sql b/Northwind/dbo/Views/Category Sales for 1997.sql new file mode 100644 index 00000000..7b8b98eb --- /dev/null +++ b/Northwind/dbo/Views/Category Sales for 1997.sql @@ -0,0 +1,5 @@ + +create view "Category Sales for 1997" AS +SELECT "Product Sales for 1997".CategoryName, Sum("Product Sales for 1997".ProductSales) AS CategorySales +FROM "Product Sales for 1997" +GROUP BY "Product Sales for 1997".CategoryName diff --git a/Northwind/dbo/Views/Current Product List.sql b/Northwind/dbo/Views/Current Product List.sql new file mode 100644 index 00000000..b194bd9a --- /dev/null +++ b/Northwind/dbo/Views/Current Product List.sql @@ -0,0 +1,6 @@ + +create view "Current Product List" AS +SELECT Product_List.ProductID, Product_List.ProductName +FROM Products AS Product_List +WHERE (((Product_List.Discontinued)=0)) +--ORDER BY Product_List.ProductName diff --git a/Northwind/dbo/Views/Customer and Suppliers by City.sql b/Northwind/dbo/Views/Customer and Suppliers by City.sql new file mode 100644 index 00000000..81c0f434 --- /dev/null +++ b/Northwind/dbo/Views/Customer and Suppliers by City.sql @@ -0,0 +1,7 @@ + +create view "Customer and Suppliers by City" AS +SELECT City, CompanyName, ContactName, 'Customers' AS Relationship +FROM Customers +UNION SELECT City, CompanyName, ContactName, 'Suppliers' +FROM Suppliers +--ORDER BY City, CompanyName diff --git a/Northwind/dbo/Views/Invoices.sql b/Northwind/dbo/Views/Invoices.sql new file mode 100644 index 00000000..2dd1a126 --- /dev/null +++ b/Northwind/dbo/Views/Invoices.sql @@ -0,0 +1,19 @@ + +create view Invoices AS +SELECT Orders.ShipName, Orders.ShipAddress, Orders.ShipCity, Orders.ShipRegion, Orders.ShipPostalCode, + Orders.ShipCountry, Orders.CustomerID, Customers.CompanyName AS CustomerName, Customers.Address, Customers.City, + Customers.Region, Customers.PostalCode, Customers.Country, + (FirstName + ' ' + LastName) AS Salesperson, + Orders.OrderID, Orders.OrderDate, Orders.RequiredDate, Orders.ShippedDate, Shippers.CompanyName As ShipperName, + "Order Details".ProductID, Products.ProductName, "Order Details".UnitPrice, "Order Details".Quantity, + "Order Details".Discount, + (CONVERT(money,("Order Details".UnitPrice*Quantity*(1-Discount)/100))*100) AS ExtendedPrice, Orders.Freight +FROM Shippers INNER JOIN + (Products INNER JOIN + ( + (Employees INNER JOIN + (Customers INNER JOIN Orders ON Customers.CustomerID = Orders.CustomerID) + ON Employees.EmployeeID = Orders.EmployeeID) + INNER JOIN "Order Details" ON Orders.OrderID = "Order Details".OrderID) + ON Products.ProductID = "Order Details".ProductID) + ON Shippers.ShipperID = Orders.ShipVia diff --git a/Northwind/dbo/Views/Order Details Extended.sql b/Northwind/dbo/Views/Order Details Extended.sql new file mode 100644 index 00000000..25c447ff --- /dev/null +++ b/Northwind/dbo/Views/Order Details Extended.sql @@ -0,0 +1,7 @@ + +create view "Order Details Extended" AS +SELECT "Order Details".OrderID, "Order Details".ProductID, Products.ProductName, + "Order Details".UnitPrice, "Order Details".Quantity, "Order Details".Discount, + (CONVERT(money,("Order Details".UnitPrice*Quantity*(1-Discount)/100))*100) AS ExtendedPrice +FROM Products INNER JOIN "Order Details" ON Products.ProductID = "Order Details".ProductID +--ORDER BY "Order Details".OrderID diff --git a/Northwind/dbo/Views/Order Subtotals.sql b/Northwind/dbo/Views/Order Subtotals.sql new file mode 100644 index 00000000..4678623e --- /dev/null +++ b/Northwind/dbo/Views/Order Subtotals.sql @@ -0,0 +1,5 @@ + +create view "Order Subtotals" AS +SELECT "Order Details".OrderID, Sum(CONVERT(money,("Order Details".UnitPrice*Quantity*(1-Discount)/100))*100) AS Subtotal +FROM "Order Details" +GROUP BY "Order Details".OrderID diff --git a/Northwind/dbo/Views/Orders Qry.sql b/Northwind/dbo/Views/Orders Qry.sql new file mode 100644 index 00000000..0701f21d --- /dev/null +++ b/Northwind/dbo/Views/Orders Qry.sql @@ -0,0 +1,7 @@ + +create view "Orders Qry" AS +SELECT Orders.OrderID, Orders.CustomerID, Orders.EmployeeID, Orders.OrderDate, Orders.RequiredDate, + Orders.ShippedDate, Orders.ShipVia, Orders.Freight, Orders.ShipName, Orders.ShipAddress, Orders.ShipCity, + Orders.ShipRegion, Orders.ShipPostalCode, Orders.ShipCountry, + Customers.CompanyName, Customers.Address, Customers.City, Customers.Region, Customers.PostalCode, Customers.Country +FROM Customers INNER JOIN Orders ON Customers.CustomerID = Orders.CustomerID diff --git a/Northwind/dbo/Views/Product Sales for 1997.sql b/Northwind/dbo/Views/Product Sales for 1997.sql new file mode 100644 index 00000000..a9a02d0d --- /dev/null +++ b/Northwind/dbo/Views/Product Sales for 1997.sql @@ -0,0 +1,10 @@ + +create view "Product Sales for 1997" AS +SELECT Categories.CategoryName, Products.ProductName, +Sum(CONVERT(money,("Order Details".UnitPrice*Quantity*(1-Discount)/100))*100) AS ProductSales +FROM (Categories INNER JOIN Products ON Categories.CategoryID = Products.CategoryID) + INNER JOIN (Orders + INNER JOIN "Order Details" ON Orders.OrderID = "Order Details".OrderID) + ON Products.ProductID = "Order Details".ProductID +WHERE (((Orders.ShippedDate) Between '19970101' And '19971231')) +GROUP BY Categories.CategoryName, Products.ProductName diff --git a/Northwind/dbo/Views/Products Above Average Price.sql b/Northwind/dbo/Views/Products Above Average Price.sql new file mode 100644 index 00000000..55b166e8 --- /dev/null +++ b/Northwind/dbo/Views/Products Above Average Price.sql @@ -0,0 +1,6 @@ + +create view "Products Above Average Price" AS +SELECT Products.ProductName, Products.UnitPrice +FROM Products +WHERE Products.UnitPrice>(SELECT AVG(UnitPrice) From Products) +--ORDER BY Products.UnitPrice DESC diff --git a/Northwind/dbo/Views/Products by Category.sql b/Northwind/dbo/Views/Products by Category.sql new file mode 100644 index 00000000..674dde1c --- /dev/null +++ b/Northwind/dbo/Views/Products by Category.sql @@ -0,0 +1,6 @@ + +create view "Products by Category" AS +SELECT Categories.CategoryName, Products.ProductName, Products.QuantityPerUnit, Products.UnitsInStock, Products.Discontinued +FROM Categories INNER JOIN Products ON Categories.CategoryID = Products.CategoryID +WHERE Products.Discontinued <> 1 +--ORDER BY Categories.CategoryName, Products.ProductName diff --git a/Northwind/dbo/Views/Quarterly Orders.sql b/Northwind/dbo/Views/Quarterly Orders.sql new file mode 100644 index 00000000..65e52f0d --- /dev/null +++ b/Northwind/dbo/Views/Quarterly Orders.sql @@ -0,0 +1,5 @@ + +create view "Quarterly Orders" AS +SELECT DISTINCT Customers.CustomerID, Customers.CompanyName, Customers.City, Customers.Country +FROM Customers RIGHT JOIN Orders ON Customers.CustomerID = Orders.CustomerID +WHERE Orders.OrderDate BETWEEN '19970101' And '19971231' diff --git a/Northwind/dbo/Views/Sales Totals by Amount.sql b/Northwind/dbo/Views/Sales Totals by Amount.sql new file mode 100644 index 00000000..73b8e005 --- /dev/null +++ b/Northwind/dbo/Views/Sales Totals by Amount.sql @@ -0,0 +1,7 @@ + +create view "Sales Totals by Amount" AS +SELECT "Order Subtotals".Subtotal AS SaleAmount, Orders.OrderID, Customers.CompanyName, Orders.ShippedDate +FROM Customers INNER JOIN + (Orders INNER JOIN "Order Subtotals" ON Orders.OrderID = "Order Subtotals".OrderID) + ON Customers.CustomerID = Orders.CustomerID +WHERE ("Order Subtotals".Subtotal >2500) AND (Orders.ShippedDate BETWEEN '19970101' And '19971231') diff --git a/Northwind/dbo/Views/Sales by Category.sql b/Northwind/dbo/Views/Sales by Category.sql new file mode 100644 index 00000000..cce21760 --- /dev/null +++ b/Northwind/dbo/Views/Sales by Category.sql @@ -0,0 +1,12 @@ + +create view "Sales by Category" AS +SELECT Categories.CategoryID, Categories.CategoryName, Products.ProductName, + Sum("Order Details Extended".ExtendedPrice) AS ProductSales +FROM Categories INNER JOIN + (Products INNER JOIN + (Orders INNER JOIN "Order Details Extended" ON Orders.OrderID = "Order Details Extended".OrderID) + ON Products.ProductID = "Order Details Extended".ProductID) + ON Categories.CategoryID = Products.CategoryID +WHERE Orders.OrderDate BETWEEN '19970101' And '19971231' +GROUP BY Categories.CategoryID, Categories.CategoryName, Products.ProductName +--ORDER BY Products.ProductName diff --git a/Northwind/dbo/Views/Summary of Sales by Quarter.sql b/Northwind/dbo/Views/Summary of Sales by Quarter.sql new file mode 100644 index 00000000..c324d90d --- /dev/null +++ b/Northwind/dbo/Views/Summary of Sales by Quarter.sql @@ -0,0 +1,6 @@ + +create view "Summary of Sales by Quarter" AS +SELECT Orders.ShippedDate, Orders.OrderID, "Order Subtotals".Subtotal +FROM Orders INNER JOIN "Order Subtotals" ON Orders.OrderID = "Order Subtotals".OrderID +WHERE Orders.ShippedDate IS NOT NULL +--ORDER BY Orders.ShippedDate diff --git a/Northwind/dbo/Views/Summary of Sales by Year.sql b/Northwind/dbo/Views/Summary of Sales by Year.sql new file mode 100644 index 00000000..cb2e4d0d --- /dev/null +++ b/Northwind/dbo/Views/Summary of Sales by Year.sql @@ -0,0 +1,6 @@ + +create view "Summary of Sales by Year" AS +SELECT Orders.ShippedDate, Orders.OrderID, "Order Subtotals".Subtotal +FROM Orders INNER JOIN "Order Subtotals" ON Orders.OrderID = "Order Subtotals".OrderID +WHERE Orders.ShippedDate IS NOT NULL +--ORDER BY Orders.ShippedDate