SchemaToDoc - Northwind
Note: The Type column includes the maximum size for character fields and the precision/scale (if they have been set) for Numeric and Decimal fields.
Table of Contents
All Tables (Tables)........................................................................................................................................ 3
Categories................................................................................................................................................. 3
CustomerCustomerDemo.......................................................................................................................... 3
CustomerDemographics............................................................................................................................ 4
Customers................................................................................................................................................. 4
Employees................................................................................................................................................ 5
EmployeeTerritories.................................................................................................................................. 6
Order Details............................................................................................................................................ 6
Orders...................................................................................................................................................... 7
Products................................................................................................................................................... 8
Region...................................................................................................................................................... 9
Shippers.................................................................................................................................................... 9
Suppliers................................................................................................................................................. 10
Territories............................................................................................................................................... 11
All Views (Views)....................................................................................................................................... 12
Alphabetical list of products..................................................................................................................... 12
Category Sales for 1997.......................................................................................................................... 12
Current Product List................................................................................................................................ 12
Customer and Suppliers by City............................................................................................................... 13
Invoices.................................................................................................................................................. 13
Order Details Extended........................................................................................................................... 14
Order Subtotals....................................................................................................................................... 15
Orders Qry............................................................................................................................................. 15
Product Sales for 1997............................................................................................................................ 16
Products Above Average Price................................................................................................................ 17
Products by Category.............................................................................................................................. 17
Quarterly Orders..................................................................................................................................... 17
Sales by Category................................................................................................................................... 18
Sales Totals by Amount........................................................................................................................... 18
Summary of Sales by Quarter.................................................................................................................. 19
Summary of Sales by Year...................................................................................................................... 19
All Stored Procedures (Stored Procedures)................................................................................................. 20
CustOrderHist......................................................................................................................................... 20
CustOrdersDetail.................................................................................................................................... 20
CustOrdersOrders.................................................................................................................................. 20
Employee Sales by Country..................................................................................................................... 21
Sales by Year.......................................................................................................................................... 21
SalesByCategory..................................................................................................................................... 21
Ten Most Expensive Products................................................................................................................. 22
Primary Key(s): CategoryID
|
Field |
Type |
Nulls? |
|
CategoryID |
int |
No |
|
CategoryName |
nvarchar (15) |
No |
|
Description |
ntext |
Yes |
|
Picture |
image |
Yes |
|
Index Name |
Unique |
Clustered |
Fields |
|
PK_Categories |
Yes |
Yes |
CategoryID |
|
CategoryName |
No |
No |
CategoryName |
No Check Constraints
No Internal Foreign Keys
|
Primary Key as Foreign Key Constraint |
Affected Table |
Affected Field |
|
FK_Products_Categories |
Products |
CategoryID |
No Enabled Triggers
Primary Key(s): CustomerID, CustomerTypeID
|
Field |
Type |
Nulls? |
|
CustomerID |
nchar (5) |
No |
|
CustomerTypeID |
nchar (10) |
No |
|
Index Name |
Unique |
Clustered |
Fields |
|
PK_CustomerCustomerDemo |
Yes |
No |
CustomerID, CustomerTypeID |
No Check Constraints
|
Internal Foreign Key Constraint |
Affected Field |
Source Table |
|
FK_CustomerCustomerDemo |
CustomerTypeID |
CustomerDemographics |
|
FK_CustomerCustomerDemo_Customers |
CustomerID |
Customers |
No External Foreign Keys
No Enabled Triggers
Primary Key(s): CustomerTypeID
|
Field |
Type |
Nulls? |
|
CustomerTypeID |
nchar (10) |
No |
|
CustomerDesc |
ntext |
Yes |
|
Index Name |
Unique |
Clustered |
Fields |
|
PK_CustomerDemographics |
Yes |
No |
CustomerTypeID |
No Check Constraints
No Internal Foreign Keys
|
Primary Key as Foreign Key Constraint |
Affected Table |
Affected Field |
|
FK_CustomerCustomerDemo |
CustomerCustomerDemo |
CustomerTypeID |
No Enabled Triggers
Primary Key(s): CustomerID
|
Field |
Type |
Nulls? |
|
CustomerID |
nchar (5) |
No |
|
CompanyName |
nvarchar (40) |
No |
|
ContactName |
nvarchar (30) |
Yes |
|
ContactTitle |
nvarchar (30) |
Yes |
|
Address |
nvarchar (60) |
Yes |
|
City |
nvarchar (15) |
Yes |
|
Region |
nvarchar (15) |
Yes |
|
PostalCode |
nvarchar (10) |
Yes |
|
Country |
nvarchar (15) |
Yes |
|
Phone |
nvarchar (24) |
Yes |
|
Fax |
nvarchar (24) |
Yes |
|
Index Name |
Unique |
Clustered |
Fields |
|
PK_Customers |
Yes |
Yes |
CustomerID |
|
City |
No |
No |
City |
|
CompanyName |
No |
No |
CompanyName |
|
PostalCode |
No |
No |
PostalCode |
|
Region |
No |
No |
Region |
No Check Constraints
No Internal Foreign Keys
|
Primary Key as Foreign Key Constraint |
Affected Table |
Affected Field |
|
FK_CustomerCustomerDemo_Customers |
CustomerCustomerDemo |
CustomerID |
|
FK_Orders_Customers |
Orders |
CustomerID |
No Enabled Triggers
Primary Key(s): EmployeeID
|
Field |
Type |
Nulls? |
|
EmployeeID |
int |
No |
|
LastName |
nvarchar (20) |
No |
|
FirstName |
nvarchar (10) |
No |
|
Title |
nvarchar (30) |
Yes |
|
TitleOfCourtesy |
nvarchar (25) |
Yes |
|
BirthDate |
datetime |
Yes |
|
HireDate |
datetime |
Yes |
|
Address |
nvarchar (60) |
Yes |
|
City |
nvarchar (15) |
Yes |
|
Region |
nvarchar (15) |
Yes |
|
PostalCode |
nvarchar (10) |
Yes |
|
Country |
nvarchar (15) |
Yes |
|
HomePhone |
nvarchar (24) |
Yes |
|
Extension |
nvarchar (4) |
Yes |
|
Photo |
image |
Yes |
|
Notes |
ntext |
Yes |
|
ReportsTo |
int |
Yes |
|
PhotoPath |
nvarchar (255) |
Yes |
|
Index Name |
Unique |
Clustered |
Fields |
|
PK_Employees |
Yes |
Yes |
EmployeeID |
|
LastName |
No |
No |
LastName |
|
PostalCode |
No |
No |
PostalCode |
|
Check Constraint Name |
Text |
|
CK_Birthdate |
([BirthDate] < getdate()) |
|
Internal Foreign Key Constraint |
Affected Field |
Source Table |
|
FK_Employees_Employees |
ReportsTo |
Employees |
|
Primary Key as Foreign Key Constraint |
Affected Table |
Affected Field |
|
FK_Employees_Employees |
Employees |
ReportsTo |
|
FK_EmployeeTerritories_Employees |
EmployeeTerritories |
EmployeeID |
|
FK_Orders_Employees |
Orders |
EmployeeID |
No Enabled Triggers
Primary Key(s): EmployeeID, TerritoryID
|
Field |
Type |
Nulls? |
|
EmployeeID |
int |
No |
|
TerritoryID |
nvarchar (20) |
No |
|
Index Name |
Unique |
Clustered |
Fields |
|
PK_EmployeeTerritories |
Yes |
No |
EmployeeID, TerritoryID |
No Check Constraints
|
Internal Foreign Key Constraint |
Affected Field |
Source Table |
|
FK_EmployeeTerritories_Employees |
EmployeeID |
Employees |
|
FK_EmployeeTerritories_Territories |
TerritoryID |
Territories |
No External Foreign Keys
No Enabled Triggers
Primary Key(s): OrderID, ProductID
|
Field |
Type |
Default |
Nulls? |
|
OrderID |
int |
|
No |
|
ProductID |
int |
|
No |
|
UnitPrice |
money |
(0) |
No |
|
Quantity |
smallint |
(1) |
No |
|
Discount |
real |
(0) |
No |
|
Index Name |
Unique |
Clustered |
Fields |
|
PK_Order_Details |
Yes |
Yes |
OrderID, ProductID |
|
OrderID |
No |
No |
OrderID |
|
OrdersOrder_Details |
No |
No |
OrderID |
|
ProductID |
No |
No |
ProductID |
|
ProductsOrder_Details |
No |
No |
ProductID |
|
Check Constraint Name |
Text |
|
CK_Discount |
([Discount] >= 0 and [Discount] <= 1) |
|
CK_Quantity |
([Quantity] > 0) |
|
CK_UnitPrice |
([UnitPrice] >= 0) |
|
Internal Foreign Key Constraint |
Affected Field |
Source Table |
|
FK_Order_Details_Orders |
OrderID |
Orders |
|
FK_Order_Details_Products |
ProductID |
Products |
No External Foreign Keys
No Enabled Triggers
Primary Key(s): OrderID
|
Field |
Type |
Default |
Nulls? |
|
OrderID |
int |
|
No |
|
CustomerID |
nchar (5) |
|
Yes |
|
EmployeeID |
int |
|
Yes |
|
OrderDate |
datetime |
|
Yes |
|
RequiredDate |
datetime |
|
Yes |
|
ShippedDate |
datetime |
|
Yes |
|
ShipVia |
int |
|
Yes |
|
Freight |
money |
(0) |
Yes |
|
ShipName |
nvarchar (40) |
|
Yes |
|
ShipAddress |
nvarchar (60) |
|
Yes |
|
ShipCity |
nvarchar (15) |
|
Yes |
|
ShipRegion |
nvarchar (15) |
|
Yes |
|
ShipPostalCode |
nvarchar (10) |
|
Yes |
|
ShipCountry |
nvarchar (15) |
|
Yes |
|
Index Name |
Unique |
Clustered |
Fields |
|
PK_Orders |
Yes |
Yes |
OrderID |
|
CustomerID |
No |
No |
CustomerID |
|
CustomersOrders |
No |
No |
CustomerID |
|
EmployeeID |
No |
No |
EmployeeID |
|
EmployeesOrders |
No |
No |
EmployeeID |
|
OrderDate |
No |
No |
OrderDate |
|
ShippedDate |
No |
No |
ShippedDate |
|
ShippersOrders |
No |
No |
ShipVia |
|
ShipPostalCode |
No |
No |
ShipPostalCode |
No Check Constraints
|
Internal Foreign Key Constraint |
Affected Field |
Source Table |
|
FK_Orders_Customers |
CustomerID |
Customers |
|
FK_Orders_Employees |
EmployeeID |
Employees |
|
FK_Orders_Shippers |
ShipVia |
Shippers |
|
Primary Key as Foreign Key Constraint |
Affected Table |
Affected Field |
|
FK_Order_Details_Orders |
Order Details |
OrderID |
No Enabled Triggers
Primary Key(s): ProductID
|
Field |
Type |
Default |
Nulls? |
|
ProductID |
int |
|
No |
|
ProductName |
nvarchar (40) |
|
No |
|
SupplierID |
int |
|
Yes |
|
CategoryID |
int |
|
Yes |
|
QuantityPerUnit |
nvarchar (20) |
|
Yes |
|
UnitPrice |
money |
(0) |
Yes |
|
UnitsInStock |
smallint |
(0) |
Yes |
|
UnitsOnOrder |
smallint |
(0) |
Yes |
|
ReorderLevel |
smallint |
(0) |
Yes |
|
Discontinued |
bit |
(0) |
No |
|
Index Name |
Unique |
Clustered |
Fields |
|
PK_Products |
Yes |
Yes |
ProductID |
|
CategoriesProducts |
No |
No |
CategoryID |
|
CategoryID |
No |
No |
CategoryID |
|
ProductName |
No |
No |
ProductName |
|
SupplierID |
No |
No |
SupplierID |
|
SuppliersProducts |
No |
No |
SupplierID |
|
Check Constraint Name |
Text |
|
CK_Products_UnitPrice |
([UnitPrice] >= 0) |
|
CK_ReorderLevel |
([ReorderLevel] >= 0) |
|
CK_UnitsInStock |
([UnitsInStock] >= 0) |
|
CK_UnitsOnOrder |
([UnitsOnOrder] >= 0) |
|
Internal Foreign Key Constraint |
Affected Field |
Source Table |
|
FK_Products_Categories |
CategoryID |
Categories |
|
FK_Products_Suppliers |
SupplierID |
Suppliers |
|
Primary Key as Foreign Key Constraint |
Affected Table |
Affected Field |
|
FK_Order_Details_Products |
Order Details |
ProductID |
No Enabled Triggers
Primary Key(s): RegionID
|
Field |
Type |
Nulls? |
|
RegionID |
int |
No |
|
RegionDescription |
nchar (50) |
No |
|
Index Name |
Unique |
Clustered |
Fields |
|
PK_Region |
Yes |
No |
RegionID |
No Check Constraints
No Internal Foreign Keys
|
Primary Key as Foreign Key Constraint |
Affected Table |
Affected Field |
|
FK_Territories_Region |
Territories |
RegionID |
No Enabled Triggers
Primary Key(s): ShipperID
|
Field |
Type |
Nulls? |
|
ShipperID |
int |
No |
|
CompanyName |
nvarchar (40) |
No |
|
Phone |
nvarchar (24) |
Yes |
|
Index Name |
Unique |
Clustered |
Fields |
|
PK_Shippers |
Yes |
Yes |
ShipperID |
No Check Constraints
No Internal Foreign Keys
|
Primary Key as Foreign Key Constraint |
Affected Table |
Affected Field |
|
FK_Orders_Shippers |
Orders |
ShipVia |
No Enabled Triggers
Primary Key(s): SupplierID
|
Field |
Type |
Nulls? |
|
SupplierID |
int |
No |
|
CompanyName |
nvarchar (40) |
No |
|
ContactName |
nvarchar (30) |
Yes |
|
ContactTitle |
nvarchar (30) |
Yes |
|
Address |
nvarchar (60) |
Yes |
|
City |
nvarchar (15) |
Yes |
|
Region |
nvarchar (15) |
Yes |
|
PostalCode |
nvarchar (10) |
Yes |
|
Country |
nvarchar (15) |
Yes |
|
Phone |
nvarchar (24) |
Yes |
|
Fax |
nvarchar (24) |
Yes |
|
HomePage |
ntext |
Yes |
|
Index Name |
Unique |
Clustered |
Fields |
|
PK_Suppliers |
Yes |
Yes |
SupplierID |
|
CompanyName |
No |
No |
CompanyName |
|
PostalCode |
No |
No |
PostalCode |
No Check Constraints
No Internal Foreign Keys
|
Primary Key as Foreign Key Constraint |
Affected Table |
Affected Field |
|
FK_Products_Suppliers |
Products |
SupplierID |
No Enabled Triggers
Primary Key(s): TerritoryID
|
Field |
Type |
Nulls? |
|
TerritoryID |
nvarchar (20) |
No |
|
TerritoryDescription |
nchar (50) |
No |
|
RegionID |
int |
No |
|
Index Name |
Unique |
Clustered |
Fields |
|
PK_Territories |
Yes |
No |
TerritoryID |
No Check Constraints
|
Internal Foreign Key Constraint |
Affected Field |
Source Table |
|
FK_Territories_Region |
RegionID |
Region |
|
Primary Key as Foreign Key Constraint |
Affected Table |
Affected Field |
|
FK_EmployeeTerritories_Territories |
EmployeeTerritories |
TerritoryID |
No Enabled Triggers
|
Field |
Type |
Nulls? |
|
ProductID |
int |
No |
|
ProductName |
nvarchar (40) |
No |
|
SupplierID |
int |
Yes |
|
CategoryID |
int |
Yes |
|
QuantityPerUnit |
nvarchar (20) |
Yes |
|
UnitPrice |
money |
Yes |
|
UnitsInStock |
smallint |
Yes |
|
UnitsOnOrder |
smallint |
Yes |
|
ReorderLevel |
smallint |
Yes |
|
Discontinued |
bit |
No |
|
CategoryName |
nvarchar (15) |
No |
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))
|
Field |
Type |
Nulls? |
|
CategoryName |
nvarchar (15) |
No |
|
CategorySales |
money |
Yes |
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
|
Field |
Type |
Nulls? |
|
ProductID |
int |
No |
|
ProductName |
nvarchar (40) |
No |
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
Customer and Suppliers by City
|
Field |
Type |
Nulls? |
|
City |
nvarchar (15) |
Yes |
|
CompanyName |
nvarchar (40) |
No |
|
ContactName |
nvarchar (30) |
Yes |
|
Relationship |
varchar (9) |
No |
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
|
Field |
Type |
Nulls? |
|
ShipName |
nvarchar (40) |
Yes |
|
ShipAddress |
nvarchar (60) |
Yes |
|
ShipCity |
nvarchar (15) |
Yes |
|
ShipRegion |
nvarchar (15) |
Yes |
|
ShipPostalCode |
nvarchar (10) |
Yes |
|
ShipCountry |
nvarchar (15) |
Yes |
|
CustomerID |
nchar (5) |
Yes |
|
CustomerName |
nvarchar (40) |
No |
|
Address |
nvarchar (60) |
Yes |
|
City |
nvarchar (15) |
Yes |
|
Region |
nvarchar (15) |
Yes |
|
PostalCode |
nvarchar (10) |
Yes |
|
Country |
nvarchar (15) |
Yes |
|
Salesperson |
nvarchar (31) |
No |
|
OrderID |
int |
No |
|
OrderDate |
datetime |
Yes |
|
RequiredDate |
datetime |
Yes |
|
ShippedDate |
datetime |
Yes |
|
ShipperName |
nvarchar (40) |
No |
|
ProductID |
int |
No |
|
ProductName |
nvarchar (40) |
No |
|
UnitPrice |
money |
No |
|
Quantity |
smallint |
No |
|
Discount |
real |
No |
|
ExtendedPrice |
money |
Yes |
|
Freight |
money |
Yes |
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
|
Field |
Type |
Nulls? |
|
OrderID |
int |
No |
|
ProductID |
int |
No |
|
ProductName |
nvarchar (40) |
No |
|
UnitPrice |
money |
No |
|
Quantity |
smallint |
No |
|
Discount |
real |
No |
|
ExtendedPrice |
money |
Yes |
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
|
Field |
Type |
Nulls? |
|
OrderID |
int |
No |
|
Subtotal |
money |
Yes |
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
|
Field |
Type |
Nulls? |
|
OrderID |
int |
No |
|
CustomerID |
nchar (5) |
Yes |
|
EmployeeID |
int |
Yes |
|
OrderDate |
datetime |
Yes |
|
RequiredDate |
datetime |
Yes |
|
ShippedDate |
datetime |
Yes |
|
ShipVia |
int |
Yes |
|
Freight |
money |
Yes |
|
ShipName |
nvarchar (40) |
Yes |
|
ShipAddress |
nvarchar (60) |
Yes |
|
ShipCity |
nvarchar (15) |
Yes |
|
ShipRegion |
nvarchar (15) |
Yes |
|
ShipPostalCode |
nvarchar (10) |
Yes |
|
ShipCountry |
nvarchar (15) |
Yes |
|
CompanyName |
nvarchar (40) |
No |
|
Address |
nvarchar (60) |
Yes |
|
City |
nvarchar (15) |
Yes |
|
Region |
nvarchar (15) |
Yes |
|
PostalCode |
nvarchar (10) |
Yes |
|
Country |
nvarchar (15) |
Yes |
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
|
Field |
Type |
Nulls? |
|
CategoryName |
nvarchar (15) |
No |
|
ProductName |
nvarchar (40) |
No |
|
ProductSales |
money |
Yes |
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
|
Field |
Type |
Nulls? |
|
ProductName |
nvarchar (40) |
No |
|
UnitPrice |
money |
Yes |
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
|
Field |
Type |
Nulls? |
|
CategoryName |
nvarchar (15) |
No |
|
ProductName |
nvarchar (40) |
No |
|
QuantityPerUnit |
nvarchar (20) |
Yes |
|
UnitsInStock |
smallint |
Yes |
|
Discontinued |
bit |
No |
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
|
Field |
Type |
Nulls? |
|
CustomerID |
nchar (5) |
Yes |
|
CompanyName |
nvarchar (40) |
Yes |
|
City |
nvarchar (15) |
Yes |
|
Country |
nvarchar (15) |
Yes |
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'
|
Field |
Type |
Nulls? |
|
CategoryID |
int |
No |
|
CategoryName |
nvarchar (15) |
No |
|
ProductName |
nvarchar (40) |
No |
|
ProductSales |
money |
Yes |
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
|
Field |
Type |
Nulls? |
|
SaleAmount |
money |
Yes |
|
OrderID |
int |
No |
|
CompanyName |
nvarchar (40) |
No |
|
ShippedDate |
datetime |
Yes |
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')
|
Field |
Type |
Nulls? |
|
ShippedDate |
datetime |
Yes |
|
OrderID |
int |
No |
|
Subtotal |
money |
Yes |
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
|
Field |
Type |
Nulls? |
|
ShippedDate |
datetime |
Yes |
|
OrderID |
int |
No |
|
Subtotal |
money |
Yes |
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
All Stored Procedures (Stored Procedures)
|
Parameter |
Type |
In/Out |
|
@CustomerID |
nchar (5) |
IN |
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
|
Parameter |
Type |
In/Out |
|
@OrderID |
int |
IN |
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
|
Parameter |
Type |
In/Out |
|
@CustomerID |
nchar (5) |
IN |
CREATE PROCEDURE CustOrdersOrders @CustomerID nchar(5)
AS
SELECT OrderID,
OrderDate,
RequiredDate,
ShippedDate
FROM Orders
WHERE CustomerID = @CustomerID
ORDER BY OrderID
|
Parameter |
Type |
In/Out |
|
@Beginning_Date |
datetime |
IN |
|
@Ending_Date |
datetime |
IN |
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
|
Parameter |
Type |
In/Out |
|
@Beginning_Date |
datetime |
IN |
|
@Ending_Date |
datetime |
IN |
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
|
Parameter |
Type |
In/Out |
|
@CategoryName |
nvarchar (15) |
IN |
|
@OrdYear |
nvarchar (4) |
IN |
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
No Parameters
create procedure "Ten Most Expensive Products" AS
SET ROWCOUNT 10
SELECT Products.ProductName AS TenMostExpensiveProducts, Products.UnitPrice
FROM Products
ORDER BY Products.UnitPrice DESC