@@ -9056,4 +9056,295 @@ AS
90569056SELECT ProductName,
90579057 UnitPrice=ROUND(Od.UnitPrice, 2),
90589058 Quantity,
9059- Discount=CONVERT(int, Discount * 100),
9059+ Discount=CONVERT(int, Discount * 100),
9060+ ExtendedPrice=ROUND(CONVERT(money, Quantity * (1 - Discount) * Od.UnitPrice), 2)
9061+ FROM Products P, [Order Details] Od
9062+ WHERE Od.ProductID = P.ProductID and Od.OrderID = @OrderID
9063+ go
9064+
9065+
9066+ if exists (select * from sysobjects where id = object_id('dbo.CustOrdersOrders'))
9067+ drop procedure dbo.CustOrdersOrders
9068+ GO
9069+
9070+ CREATE PROCEDURE CustOrdersOrders @CustomerID nchar(5)
9071+ AS
9072+ SELECT OrderID,
9073+ OrderDate,
9074+ RequiredDate,
9075+ ShippedDate
9076+ FROM Orders
9077+ WHERE CustomerID = @CustomerID
9078+ ORDER BY OrderID
9079+ GO
9080+
9081+
9082+ if exists (select * from sysobjects where id = object_id('dbo.CustOrderHist') and sysstat & 0xf = 4)
9083+ drop procedure dbo.CustOrderHist
9084+ GO
9085+ CREATE PROCEDURE CustOrderHist @CustomerID nchar(5)
9086+ AS
9087+ SELECT ProductName, Total=SUM(Quantity)
9088+ FROM Products P, [Order Details] OD, Orders O, Customers C
9089+ WHERE C.CustomerID = @CustomerID
9090+ AND C.CustomerID = O.CustomerID AND O.OrderID = OD.OrderID AND OD.ProductID = P.ProductID
9091+ GROUP BY ProductName
9092+ GO
9093+
9094+ if exists (select * from sysobjects where id = object_id('dbo.SalesByCategory') and sysstat & 0xf = 4)
9095+ drop procedure dbo.SalesByCategory
9096+ GO
9097+ CREATE PROCEDURE SalesByCategory
9098+ @CategoryName nvarchar(15), @OrdYear nvarchar(4) = '1998'
9099+ AS
9100+ IF @OrdYear != '1996' AND @OrdYear != '1997' AND @OrdYear != '1998'
9101+ BEGIN
9102+ SELECT @OrdYear = '1998'
9103+ END
9104+
9105+ SELECT ProductName,
9106+ TotalPurchase=ROUND(SUM(CONVERT(decimal(14,2), OD.Quantity * (1-OD.Discount) * OD.UnitPrice)), 0)
9107+ FROM [Order Details] OD, Orders O, Products P, Categories C
9108+ WHERE OD.OrderID = O.OrderID
9109+ AND OD.ProductID = P.ProductID
9110+ AND P.CategoryID = C.CategoryID
9111+ AND C.CategoryName = @CategoryName
9112+ AND SUBSTRING(CONVERT(nvarchar(22), O.OrderDate, 111), 1, 4) = @OrdYear
9113+ GROUP BY ProductName
9114+ ORDER BY ProductName
9115+ GO
9116+
9117+
9118+ /* The follwing adds tables to the Northwind database */
9119+
9120+
9121+ CREATE TABLE [dbo].[CustomerCustomerDemo]
9122+ ([CustomerID] nchar (5) NOT NULL,
9123+ [CustomerTypeID] [nchar] (10) NOT NULL
9124+ ) ON [PRIMARY]
9125+ GO
9126+
9127+ CREATE TABLE [dbo].[CustomerDemographics]
9128+ ([CustomerTypeID] [nchar] (10) NOT NULL ,
9129+ [CustomerDesc] [ntext] NULL
9130+ ) ON [PRIMARY]
9131+ GO
9132+
9133+ CREATE TABLE [dbo].[Region]
9134+ ( [RegionID] [int] NOT NULL ,
9135+ [RegionDescription] [nchar] (50) NOT NULL
9136+ ) ON [PRIMARY]
9137+ GO
9138+
9139+ CREATE TABLE [dbo].[Territories]
9140+ ([TerritoryID] [nvarchar] (20) NOT NULL ,
9141+ [TerritoryDescription] [nchar] (50) NOT NULL ,
9142+ [RegionID] [int] NOT NULL
9143+ ) ON [PRIMARY]
9144+ GO
9145+
9146+ CREATE TABLE [dbo].[EmployeeTerritories]
9147+ ([EmployeeID] [int] NOT NULL,
9148+ [TerritoryID] [nvarchar] (20) NOT NULL
9149+ ) ON [PRIMARY]
9150+
9151+ -- The following adds data to the tables just created.
9152+
9153+ Insert Into Region Values (1,'Eastern')
9154+ Insert Into Region Values (2,'Western')
9155+ Insert Into Region Values (3,'Northern')
9156+ Insert Into Region Values (4,'Southern')
9157+ Go
9158+
9159+ Insert Into Territories Values ('01581','Westboro',1)
9160+ Insert Into Territories Values ('01730','Bedford',1)
9161+ Insert Into Territories Values ('01833','Georgetow',1)
9162+ Insert Into Territories Values ('02116','Boston',1)
9163+ Insert Into Territories Values ('02139','Cambridge',1)
9164+ Insert Into Territories Values ('02184','Braintree',1)
9165+ Insert Into Territories Values ('02903','Providence',1)
9166+ Insert Into Territories Values ('03049','Hollis',3)
9167+ Insert Into Territories Values ('03801','Portsmouth',3)
9168+ Insert Into Territories Values ('06897','Wilton',1)
9169+ Insert Into Territories Values ('07960','Morristown',1)
9170+ Insert Into Territories Values ('08837','Edison',1)
9171+ Insert Into Territories Values ('10019','New York',1)
9172+ Insert Into Territories Values ('10038','New York',1)
9173+ Insert Into Territories Values ('11747','Mellvile',1)
9174+ Insert Into Territories Values ('14450','Fairport',1)
9175+ Insert Into Territories Values ('19428','Philadelphia',3)
9176+ Insert Into Territories Values ('19713','Neward',1)
9177+ Insert Into Territories Values ('20852','Rockville',1)
9178+ Insert Into Territories Values ('27403','Greensboro',1)
9179+ Insert Into Territories Values ('27511','Cary',1)
9180+ Insert Into Territories Values ('29202','Columbia',4)
9181+ Insert Into Territories Values ('30346','Atlanta',4)
9182+ Insert Into Territories Values ('31406','Savannah',4)
9183+ Insert Into Territories Values ('32859','Orlando',4)
9184+ Insert Into Territories Values ('33607','Tampa',4)
9185+ Insert Into Territories Values ('40222','Louisville',1)
9186+ Insert Into Territories Values ('44122','Beachwood',3)
9187+ Insert Into Territories Values ('45839','Findlay',3)
9188+ Insert Into Territories Values ('48075','Southfield',3)
9189+ Insert Into Territories Values ('48084','Troy',3)
9190+ Insert Into Territories Values ('48304','Bloomfield Hills',3)
9191+ Insert Into Territories Values ('53404','Racine',3)
9192+ Insert Into Territories Values ('55113','Roseville',3)
9193+ Insert Into Territories Values ('55439','Minneapolis',3)
9194+ Insert Into Territories Values ('60179','Hoffman Estates',2)
9195+ Insert Into Territories Values ('60601','Chicago',2)
9196+ Insert Into Territories Values ('72716','Bentonville',4)
9197+ Insert Into Territories Values ('75234','Dallas',4)
9198+ Insert Into Territories Values ('78759','Austin',4)
9199+ Insert Into Territories Values ('80202','Denver',2)
9200+ Insert Into Territories Values ('80909','Colorado Springs',2)
9201+ Insert Into Territories Values ('85014','Phoenix',2)
9202+ Insert Into Territories Values ('85251','Scottsdale',2)
9203+ Insert Into Territories Values ('90405','Santa Monica',2)
9204+ Insert Into Territories Values ('94025','Menlo Park',2)
9205+ Insert Into Territories Values ('94105','San Francisco',2)
9206+ Insert Into Territories Values ('95008','Campbell',2)
9207+ Insert Into Territories Values ('95054','Santa Clara',2)
9208+ Insert Into Territories Values ('95060','Santa Cruz',2)
9209+ Insert Into Territories Values ('98004','Bellevue',2)
9210+ Insert Into Territories Values ('98052','Redmond',2)
9211+ Insert Into Territories Values ('98104','Seattle',2)
9212+ Go
9213+
9214+ Insert Into EmployeeTerritories Values (1,'06897')
9215+ Insert Into EmployeeTerritories Values (1,'19713')
9216+ Insert Into EmployeeTerritories Values (2,'01581')
9217+ Insert Into EmployeeTerritories Values (2,'01730')
9218+ Insert Into EmployeeTerritories Values (2,'01833')
9219+ Insert Into EmployeeTerritories Values (2,'02116')
9220+ Insert Into EmployeeTerritories Values (2,'02139')
9221+ Insert Into EmployeeTerritories Values (2,'02184')
9222+ Insert Into EmployeeTerritories Values (2,'40222')
9223+ Insert Into EmployeeTerritories Values (3,'30346')
9224+ Insert Into EmployeeTerritories Values (3,'31406')
9225+ Insert Into EmployeeTerritories Values (3,'32859')
9226+ Insert Into EmployeeTerritories Values (3,'33607')
9227+ Insert Into EmployeeTerritories Values (4,'20852')
9228+ Insert Into EmployeeTerritories Values (4,'27403')
9229+ Insert Into EmployeeTerritories Values (4,'27511')
9230+ Insert Into EmployeeTerritories Values (5,'02903')
9231+ Insert Into EmployeeTerritories Values (5,'07960')
9232+ Insert Into EmployeeTerritories Values (5,'08837')
9233+ Insert Into EmployeeTerritories Values (5,'10019')
9234+ Insert Into EmployeeTerritories Values (5,'10038')
9235+ Insert Into EmployeeTerritories Values (5,'11747')
9236+ Insert Into EmployeeTerritories Values (5,'14450')
9237+ Insert Into EmployeeTerritories Values (6,'85014')
9238+ Insert Into EmployeeTerritories Values (6,'85251')
9239+ Insert Into EmployeeTerritories Values (6,'98004')
9240+ Insert Into EmployeeTerritories Values (6,'98052')
9241+ Insert Into EmployeeTerritories Values (6,'98104')
9242+ Insert Into EmployeeTerritories Values (7,'60179')
9243+ Insert Into EmployeeTerritories Values (7,'60601')
9244+ Insert Into EmployeeTerritories Values (7,'80202')
9245+ Insert Into EmployeeTerritories Values (7,'80909')
9246+ Insert Into EmployeeTerritories Values (7,'90405')
9247+ Insert Into EmployeeTerritories Values (7,'94025')
9248+ Insert Into EmployeeTerritories Values (7,'94105')
9249+ Insert Into EmployeeTerritories Values (7,'95008')
9250+ Insert Into EmployeeTerritories Values (7,'95054')
9251+ Insert Into EmployeeTerritories Values (7,'95060')
9252+ Insert Into EmployeeTerritories Values (8,'19428')
9253+ Insert Into EmployeeTerritories Values (8,'44122')
9254+ Insert Into EmployeeTerritories Values (8,'45839')
9255+ Insert Into EmployeeTerritories Values (8,'53404')
9256+ Insert Into EmployeeTerritories Values (9,'03049')
9257+ Insert Into EmployeeTerritories Values (9,'03801')
9258+ Insert Into EmployeeTerritories Values (9,'48075')
9259+ Insert Into EmployeeTerritories Values (9,'48084')
9260+ Insert Into EmployeeTerritories Values (9,'48304')
9261+ Insert Into EmployeeTerritories Values (9,'55113')
9262+ Insert Into EmployeeTerritories Values (9,'55439')
9263+ GO
9264+
9265+
9266+
9267+ -- The following adds constraints to the Northwind database
9268+
9269+ ALTER TABLE CustomerCustomerDemo
9270+ ADD CONSTRAINT [PK_CustomerCustomerDemo] PRIMARY KEY NONCLUSTERED
9271+ (
9272+ [CustomerID],
9273+ [CustomerTypeID]
9274+ ) ON [PRIMARY]
9275+ GO
9276+
9277+ ALTER TABLE CustomerDemographics
9278+ ADD CONSTRAINT [PK_CustomerDemographics] PRIMARY KEY NONCLUSTERED
9279+ (
9280+ [CustomerTypeID]
9281+ ) ON [PRIMARY]
9282+ GO
9283+
9284+ ALTER TABLE CustomerCustomerDemo
9285+ ADD CONSTRAINT [FK_CustomerCustomerDemo] FOREIGN KEY
9286+ (
9287+ [CustomerTypeID]
9288+ ) REFERENCES [dbo].[CustomerDemographics] (
9289+ [CustomerTypeID]
9290+ )
9291+ GO
9292+
9293+ ALTER TABLE CustomerCustomerDemo
9294+ ADD CONSTRAINT [FK_CustomerCustomerDemo_Customers] FOREIGN KEY
9295+ (
9296+ [CustomerID]
9297+ ) REFERENCES [dbo].[Customers] (
9298+ [CustomerID]
9299+ )
9300+ GO
9301+
9302+ ALTER TABLE Region
9303+ ADD CONSTRAINT [PK_Region] PRIMARY KEY NONCLUSTERED
9304+ (
9305+ [RegionID]
9306+ ) ON [PRIMARY]
9307+ GO
9308+
9309+ ALTER TABLE Territories
9310+ ADD CONSTRAINT [PK_Territories] PRIMARY KEY NONCLUSTERED
9311+ (
9312+ [TerritoryID]
9313+ ) ON [PRIMARY]
9314+ GO
9315+
9316+ ALTER TABLE Territories
9317+ ADD CONSTRAINT [FK_Territories_Region] FOREIGN KEY
9318+ (
9319+ [RegionID]
9320+ ) REFERENCES [dbo].[Region] (
9321+ [RegionID]
9322+ )
9323+ GO
9324+
9325+ ALTER TABLE EmployeeTerritories
9326+ ADD CONSTRAINT [PK_EmployeeTerritories] PRIMARY KEY NONCLUSTERED
9327+ (
9328+ [EmployeeID],
9329+ [TerritoryID]
9330+ ) ON [PRIMARY]
9331+ GO
9332+
9333+ ALTER TABLE EmployeeTerritories
9334+ ADD CONSTRAINT [FK_EmployeeTerritories_Employees] FOREIGN KEY
9335+ (
9336+ [EmployeeID]
9337+ ) REFERENCES [dbo].[Employees] (
9338+ [EmployeeID]
9339+ )
9340+ GO
9341+
9342+
9343+ ALTER TABLE EmployeeTerritories
9344+ ADD CONSTRAINT [FK_EmployeeTerritories_Territories] FOREIGN KEY
9345+ (
9346+ [TerritoryID]
9347+ ) REFERENCES [dbo].[Territories] (
9348+ [TerritoryID]
9349+ )
9350+ GO
0 commit comments