@@ -9056,4 +9056,295 @@ AS
9056
9056
SELECT ProductName,
9057
9057
UnitPrice=ROUND(Od.UnitPrice, 2),
9058
9058
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