TSQL2012
TSQL2012
--- Supported versions of SQL Server: 2005, 2008, 2008 R2, 2012, SQL Azure
--- Based originally on the Northwind sample database
-- with changes in both schema and data
--- Last updated: 20120328
--- Itzik Ben-Gan
------------------------------------------------------------------------------------------------------------------------------------------ Create empty database TSQL2012
---------------------------------------------------------------------- For on-premises SQL Server use the steps in section A and then proceed to sec
tion C
-- For SQL Azure use the steps in section B and then proceed to section C
---------------------------------------------------------------------- Section A - for on-premises SQL Server only
---------------------------------------------------------------------- 1. Connect to your on-premises SQL Server instance, master database
-- 2. Run the following code to create an empty database called TSQL2012
USE master;
-- Drop database
IF DB_ID('TSQL2012') IS NOT NULL DROP DATABASE TSQL2012;
-- If database could not be created due to open connections, abort
IF @@ERROR = 3702
RAISERROR('Database cannot be dropped because there are still open connection
s.', 127, 127) WITH NOWAIT, LOG;
-- Create database
CREATE DATABASE TSQL2012;
GO
USE TSQL2012;
GO
-- 3. Proceed to section C
---------------------------------------------------------------------- Section B - for SQL Azure only
--------------------------------------------------------------------/*
-- 1. Connect to SQL Azure, master database
USE master; -- used only as a test; will fail if not connected to master
-- 2. Run following if TSQL2012 database already exists, otherwise skip
DROP DATABASE TSQL2012;
GO
-- 3. Run the following code to create an empty database called TSQL2012
NONCLUSTERED
NONCLUSTERED
NONCLUSTERED
NONCLUSTERED
INDEX
INDEX
INDEX
INDEX
idx_nc_city
idx_nc_companyname
idx_nc_postalcode
idx_nc_region
ON
ON
ON
ON
Sales.Customers(city);
Sales.Customers(companyname);
Sales.Customers(postalcode);
Sales.Customers(region);
ON Sales.Orders(custid);
ON Sales.Orders(empid);
CREATE
CREATE
CREATE
CREATE
NONCLUSTERED
NONCLUSTERED
NONCLUSTERED
NONCLUSTERED
INDEX
INDEX
INDEX
INDEX
idx_nc_shipperid
idx_nc_orderdate
idx_nc_shippeddate
idx_nc_shippostalcode
ON
ON
ON
ON
Sales.Orders(shipperid);
Sales.Orders(orderdate);
Sales.Orders(shippeddate);
Sales.Orders(shippostalcode);
supplierid, categoryid,
supplierid, categoryid,
supplierid, categoryid,
supplierid, categoryid,
supplierid, categoryid,
supplierid, categoryid,
supplierid, categoryid,
supplierid, categoryid,
supplierid, categoryid,
supplierid, categoryid,
supplierid, categoryid,
supplierid, categoryid,
supplierid, categoryid,
supplierid, categoryid,
supplierid, categoryid,
supplierid, categoryid,
supplierid, categoryid,
supplierid, categoryid,
supplierid, categoryid,
supplierid, categoryid,
supplierid, categoryid,
supplierid, categoryid,
supplierid, categoryid,
supplierid, categoryid,
supplierid, categoryid,
supplierid, categoryid,
supplierid, categoryid,
supplierid, categoryid,
supplierid, categoryid,
supplierid, categoryid,
supplierid, categoryid,
supplierid, categoryid,
supplierid, categoryid,
supplierid, categoryid,
supplierid, categoryid,
supplierid, categoryid,
supplierid, categoryid,
supplierid, categoryid,
supplierid, categoryid,
supplierid, categoryid,
supplierid, categoryid,
supplierid, categoryid,
supplierid, categoryid,
supplierid, categoryid,
supplierid, categoryid,
supplierid, categoryid,
supplierid, categoryid,
supplierid, categoryid,
supplierid, categoryid,
supplierid, categoryid,
supplierid, categoryid,
supplierid, categoryid,
supplierid, categoryid,
supplierid, categoryid,
supplierid, categoryid,
supplierid, categoryid,
supplierid, categoryid,
supplierid, categoryid,
supplierid, categoryid,
supplierid, categoryid,
supplierid, categoryid,
supplierid, categoryid,
supplierid, categoryid,
supplierid, categoryid,
supplierid, categoryid,
supplierid, categoryid,
supplierid, categoryid,
supplierid, categoryid,
supplierid, categoryid,
supplierid, categoryid,
supplierid, categoryid,
supplierid, categoryid,
supplierid, categoryid,
supplierid, categoryid,
supplierid, categoryid,
supplierid, categoryid,
supplierid, categoryid,
arrera 7890 con Ave. Bolvar #65-98 Llano Largo', N'Barquisimeto', N'Lara', N'1009
3', N'Venezuela', N'(9) 789-0123', N'(9) 456-7890');
INSERT INTO Sales.Customers(custid, companyname, contactname, contacttitle, addr
ess, city, region, postalcode, country, phone, fax)
VALUES(47, N'Customer PSQUZ', N'Lupu, Cornel', N'Owner', N'Ave. 5 de Mayo Porl
amar 5678', N'I. de Margarita', N'Nueva Esparta', N'10121', N'Venezuela', N'(8)
01-23-45', N'(8) 67-89-01');
INSERT INTO Sales.Customers(custid, companyname, contactname, contacttitle, addr
ess, city, region, postalcode, country, phone, fax)
VALUES(48, N'Customer DVFMB', N'Szymczak, Radosaw', N'Sales Manager', N'9012 Ch
iaroscuro Rd.', N'Portland', N'OR', N'10073', N'USA', N'(503) 555-0117', N'(503)
555-0129');
INSERT INTO Sales.Customers(custid, companyname, contactname, contacttitle, addr
ess, city, region, postalcode, country, phone, fax)
VALUES(49, N'Customer CQRAA', N'Duerr, Bernard', N'Marketing Manager', N'Via L
udovico il Moro 6789', N'Bergamo', NULL, N'10106', N'Italy', N'035-345678', N'03
5-901234');
INSERT INTO Sales.Customers(custid, companyname, contactname, contacttitle, addr
ess, city, region, postalcode, country, phone, fax)
VALUES(50, N'Customer JYPSC', N'Mace, Donald', N'Sales Agent', N'Rue Joseph-Be
ns 0123', N'Bruxelles', NULL, N'10074', N'Belgium', N'(02) 890 12 34', N'(02) 56
7 89 01');
INSERT INTO Sales.Customers(custid, companyname, contactname, contacttitle, addr
ess, city, region, postalcode, country, phone, fax)
VALUES(51, N'Customer PVDZC', N'Taylor, Maurice', N'Marketing Assistant', N'89
01 rue St. Laurent', N'Montral', N'Qubec', N'10040', N'Canada', N'(514) 345-6789',
N'(514) 012-3456');
INSERT INTO Sales.Customers(custid, companyname, contactname, contacttitle, addr
ess, city, region, postalcode, country, phone, fax)
VALUES(52, N'Customer PZNLA', N'Dupont-Roc, Patrice', N'Marketing Assistant',
N'Heerstr. 4567', N'Leipzig', NULL, N'10125', N'Germany', N'0342-12345', NULL);
INSERT INTO Sales.Customers(custid, companyname, contactname, contacttitle, addr
ess, city, region, postalcode, country, phone, fax)
VALUES(53, N'Customer GCJSG', N'Mallit, Ken', N'Sales Associate', N'South Hous
e 1234 Queensbridge', N'London', NULL, N'10061', N'UK', N'(171) 890-1234', N'(17
1) 890-1235');
INSERT INTO Sales.Customers(custid, companyname, contactname, contacttitle, addr
ess, city, region, postalcode, country, phone, fax)
VALUES(54, N'Customer TDKEG', N'Tiano, Mike', N'Sales Agent', N'Ing. Gustavo M
oncada 0123 Piso 20-A', N'Buenos Aires', NULL, N'10094', N'Argentina', N'(1) 123
-4567', N'(1) 890-1234');
INSERT INTO Sales.Customers(custid, companyname, contactname, contacttitle, addr
ess, city, region, postalcode, country, phone, fax)
VALUES(55, N'Customer KZQZT', N'Egelund-Muller, Anja', N'Sales Representative'
, N'7890 Bering St.', N'Anchorage', N'AK', N'10050', N'USA', N'(907) 555-0115',
N'(907) 555-0128');
INSERT INTO Sales.Customers(custid, companyname, contactname, contacttitle, addr
ess, city, region, postalcode, country, phone, fax)
VALUES(56, N'Customer QNIVZ', N'Marinova, Nadejda', N'Owner', N'Mehrheimerstr.
9012', N'Kln', NULL, N'10047', N'Germany', N'0221-0123456', N'0221-7890123');
INSERT INTO Sales.Customers(custid, companyname, contactname, contacttitle, addr
ess, city, region, postalcode, country, phone, fax)
VALUES(57, N'Customer WVAXS', N'Tollevsen, Bjorn', N'Owner', N'5678, boulevard
Charonne', N'Paris', NULL, N'10085', N'France', N'(1) 89.01.23.45', N'(1) 89.01
.23.46');
INSERT INTO Sales.Customers(custid, companyname, contactname, contacttitle, addr
ess, city, region, postalcode, country, phone, fax)
VALUES(58, N'Customer AHXHT', N'Fakhouri, Fadi', N'Sales Representative', N'Ca
lle Dr. Jorge Cash 8901', N'Mxico D.F.', NULL, N'10116', N'Mexico', N'(5) 890-123
4', N'(5) 567-8901');
16 00:00:00.000', 2, 102.02, N'Ship to 46-C', N'Carrera 2345 con Ave. Bolvar #6598 Llano Largo', N'Barquisimeto', N'Lara', N'10229', N'Venezuela');
INSERT INTO Sales.Orders(orderid, custid, empid, orderdate, requireddate, shippe
ddate, shipperid, freight, shipname, shipaddress, shipcity, shipregion, shippost
alcode, shipcountry)
VALUES(10500, 41, 6, '20070409 00:00:00.000', '20070507 00:00:00.000', '200704
17 00:00:00.000', 1, 42.68, N'Destination OLJND', N'8901 rue Alsace-Lorraine', N
'Toulouse', NULL, N'10216', N'France');
INSERT INTO Sales.Orders(orderid, custid, empid, orderdate, requireddate, shippe
ddate, shipperid, freight, shipname, shipaddress, shipcity, shipregion, shippost
alcode, shipcountry)
VALUES(10501, 6, 9, '20070409 00:00:00.000', '20070507 00:00:00.000', '2007041
6 00:00:00.000', 3, 8.85, N'Ship to 6-C', N'Forsterstr. 4567', N'Mannheim', NULL
, N'10302', N'Germany');
INSERT INTO Sales.Orders(orderid, custid, empid, orderdate, requireddate, shippe
ddate, shipperid, freight, shipname, shipaddress, shipcity, shipregion, shippost
alcode, shipcountry)
VALUES(10502, 58, 2, '20070410 00:00:00.000', '20070508 00:00:00.000', '200704
29 00:00:00.000', 1, 69.32, N'Ship to 58-B', N'Calle Dr. Jorge Cash 4567', N'Mxic
o D.F.', NULL, N'10262', N'Mexico');
INSERT INTO Sales.Orders(orderid, custid, empid, orderdate, requireddate, shippe
ddate, shipperid, freight, shipname, shipaddress, shipcity, shipregion, shippost
alcode, shipcountry)
VALUES(10503, 37, 6, '20070411 00:00:00.000', '20070509 00:00:00.000', '200704
16 00:00:00.000', 2, 16.74, N'Destination ATSOA', N'4567 Johnstown Road', N'Cork
', N'Co. Cork', N'10202', N'Ireland');
INSERT INTO Sales.Orders(orderid, custid, empid, orderdate, requireddate, shippe
ddate, shipperid, freight, shipname, shipaddress, shipcity, shipregion, shippost
alcode, shipcountry)
VALUES(10504, 89, 4, '20070411 00:00:00.000', '20070509 00:00:00.000', '200704
18 00:00:00.000', 3, 59.13, N'Ship to 89-B', N'8901 - 12th Ave. S.', N'Seattle',
N'WA', N'10357', N'USA');
INSERT INTO Sales.Orders(orderid, custid, empid, orderdate, requireddate, shippe
ddate, shipperid, freight, shipname, shipaddress, shipcity, shipregion, shippost
alcode, shipcountry)
VALUES(10505, 51, 3, '20070414 00:00:00.000', '20070512 00:00:00.000', '200704
21 00:00:00.000', 3, 7.13, N'Ship to 51-B', N'7890 rue St. Laurent', N'Montral',
N'Qubec', N'10245', N'Canada');
INSERT INTO Sales.Orders(orderid, custid, empid, orderdate, requireddate, shippe
ddate, shipperid, freight, shipname, shipaddress, shipcity, shipregion, shippost
alcode, shipcountry)
VALUES(10506, 39, 9, '20070415 00:00:00.000', '20070513 00:00:00.000', '200705
02 00:00:00.000', 2, 21.19, N'Destination DKMQA', N'Maubelstr. 0123', N'Brandenb
urg', NULL, N'10208', N'Germany');
INSERT INTO Sales.Orders(orderid, custid, empid, orderdate, requireddate, shippe
ddate, shipperid, freight, shipname, shipaddress, shipcity, shipregion, shippost
alcode, shipcountry)
VALUES(10507, 3, 7, '20070415 00:00:00.000', '20070513 00:00:00.000', '2007042
2 00:00:00.000', 1, 47.45, N'Destination FQFLS', N'Mataderos 3456', N'Mxico D.F.
', NULL, N'10211', N'Mexico');
INSERT INTO Sales.Orders(orderid, custid, empid, orderdate, requireddate, shippe
ddate, shipperid, freight, shipname, shipaddress, shipcity, shipregion, shippost
alcode, shipcountry)
VALUES(10508, 56, 1, '20070416 00:00:00.000', '20070514 00:00:00.000', '200705
13 00:00:00.000', 2, 4.99, N'Ship to 56-C', N'Mehrheimerstr. 2345', N'Kln', NULL,
N'10260', N'Germany');
INSERT INTO Sales.Orders(orderid, custid, empid, orderdate, requireddate, shippe
ddate, shipperid, freight, shipname, shipaddress, shipcity, shipregion, shippost
alcode, shipcountry)
VALUES(10509, 6, 4, '20070417 00:00:00.000', '20070515 00:00:00.000', '2007042
04 00:00:00.000', 2, 13.73, N'Ship to 45-C', N'9012 Polk St. Suite 5', N'San Fra
ncisco', N'CA', N'10226', N'USA');
INSERT INTO Sales.Orders(orderid, custid, empid, orderdate, requireddate, shippe
ddate, shipperid, freight, shipname, shipaddress, shipcity, shipregion, shippost
alcode, shipcountry)
VALUES(10580, 56, 4, '20070626 00:00:00.000', '20070724 00:00:00.000', '200707
01 00:00:00.000', 3, 75.89, N'Ship to 56-C', N'Mehrheimerstr. 2345', N'Kln', NULL
, N'10260', N'Germany');
INSERT INTO Sales.Orders(orderid, custid, empid, orderdate, requireddate, shippe
ddate, shipperid, freight, shipname, shipaddress, shipcity, shipregion, shippost
alcode, shipcountry)
VALUES(10581, 21, 3, '20070626 00:00:00.000', '20070724 00:00:00.000', '200707
02 00:00:00.000', 1, 3.01, N'Destination SSYXZ', N'Rua Ors, 3456', N'Sao Paulo',
N'SP', N'10161', N'Brazil');
INSERT INTO Sales.Orders(orderid, custid, empid, orderdate, requireddate, shippe
ddate, shipperid, freight, shipname, shipaddress, shipcity, shipregion, shippost
alcode, shipcountry)
VALUES(10582, 6, 3, '20070627 00:00:00.000', '20070725 00:00:00.000', '2007071
4 00:00:00.000', 2, 27.71, N'Ship to 6-A', N'Forsterstr. 2345', N'Mannheim', NUL
L, N'10300', N'Germany');
INSERT INTO Sales.Orders(orderid, custid, empid, orderdate, requireddate, shippe
ddate, shipperid, freight, shipname, shipaddress, shipcity, shipregion, shippost
alcode, shipcountry)
VALUES(10583, 87, 2, '20070630 00:00:00.000', '20070728 00:00:00.000', '200707
04 00:00:00.000', 2, 7.28, N'Ship to 87-C', N'Torikatu 3456', N'Oulu', NULL, N'1
0352', N'Finland');
INSERT INTO Sales.Orders(orderid, custid, empid, orderdate, requireddate, shippe
ddate, shipperid, freight, shipname, shipaddress, shipcity, shipregion, shippost
alcode, shipcountry)
VALUES(10584, 7, 4, '20070630 00:00:00.000', '20070728 00:00:00.000', '2007070
4 00:00:00.000', 1, 59.14, N'Ship to 7-B', N'1234, place Klber', N'Strasbourg', N
ULL, N'10330', N'France');
INSERT INTO Sales.Orders(orderid, custid, empid, orderdate, requireddate, shippe
ddate, shipperid, freight, shipname, shipaddress, shipcity, shipregion, shippost
alcode, shipcountry)
VALUES(10585, 88, 7, '20070701 00:00:00.000', '20070729 00:00:00.000', '200707
10 00:00:00.000', 1, 13.41, N'Ship to 88-A', N'Rua do Mercado, 4567', N'Resende'
, N'SP', N'10353', N'Brazil');
INSERT INTO Sales.Orders(orderid, custid, empid, orderdate, requireddate, shippe
ddate, shipperid, freight, shipname, shipaddress, shipcity, shipregion, shippost
alcode, shipcountry)
VALUES(10586, 66, 9, '20070702 00:00:00.000', '20070730 00:00:00.000', '200707
09 00:00:00.000', 1, 0.48, N'Ship to 66-B', N'Strada Provinciale 1234', N'Reggio
Emilia', NULL, N'10289', N'Italy');
INSERT INTO Sales.Orders(orderid, custid, empid, orderdate, requireddate, shippe
ddate, shipperid, freight, shipname, shipaddress, shipcity, shipregion, shippost
alcode, shipcountry)
VALUES(10587, 61, 1, '20070702 00:00:00.000', '20070730 00:00:00.000', '200707
09 00:00:00.000', 1, 62.52, N'Ship to 61-C', N'Rua da Panificadora, 7890', N'Rio
de Janeiro', N'RJ', N'10275', N'Brazil');
INSERT INTO Sales.Orders(orderid, custid, empid, orderdate, requireddate, shippe
ddate, shipperid, freight, shipname, shipaddress, shipcity, shipregion, shippost
alcode, shipcountry)
VALUES(10588, 63, 2, '20070703 00:00:00.000', '20070731 00:00:00.000', '200707
10 00:00:00.000', 3, 194.67, N'Ship to 63-A', N'Taucherstrae 1234', N'Cunewalde',
NULL, N'10279', N'Germany');
INSERT INTO Sales.Orders(orderid, custid, empid, orderdate, requireddate, shippe
ddate, shipperid, freight, shipname, shipaddress, shipcity, shipregion, shippost
alcode, shipcountry)
VALUES(10589, 32, 8, '20070704 00:00:00.000', '20070801 00:00:00.000', '200707
05 00:00:00.000', 2, 51.44, N'Ship to 45-A', N'8901 Polk St. Suite 5', N'San Fra
ncisco', N'CA', N'10225', N'USA');
INSERT INTO Sales.Orders(orderid, custid, empid, orderdate, requireddate, shippe
ddate, shipperid, freight, shipname, shipaddress, shipcity, shipregion, shippost
alcode, shipcountry)
VALUES(10720, 61, 8, '20071028 00:00:00.000', '20071111 00:00:00.000', '200711
05 00:00:00.000', 2, 9.53, N'Ship to 61-C', N'Rua da Panificadora, 7890', N'Rio
de Janeiro', N'RJ', N'10275', N'Brazil');
INSERT INTO Sales.Orders(orderid, custid, empid, orderdate, requireddate, shippe
ddate, shipperid, freight, shipname, shipaddress, shipcity, shipregion, shippost
alcode, shipcountry)
VALUES(10721, 63, 5, '20071029 00:00:00.000', '20071126 00:00:00.000', '200710
31 00:00:00.000', 3, 48.92, N'Ship to 63-A', N'Taucherstrae 1234', N'Cunewalde',
NULL, N'10279', N'Germany');
INSERT INTO Sales.Orders(orderid, custid, empid, orderdate, requireddate, shippe
ddate, shipperid, freight, shipname, shipaddress, shipcity, shipregion, shippost
alcode, shipcountry)
VALUES(10722, 71, 8, '20071029 00:00:00.000', '20071210 00:00:00.000', '200711
04 00:00:00.000', 1, 74.58, N'Ship to 71-A', N'7890 Suffolk Ln.', N'Boise', N'ID
', N'10305', N'USA');
INSERT INTO Sales.Orders(orderid, custid, empid, orderdate, requireddate, shippe
ddate, shipperid, freight, shipname, shipaddress, shipcity, shipregion, shippost
alcode, shipcountry)
VALUES(10723, 89, 3, '20071030 00:00:00.000', '20071127 00:00:00.000', '200711
25 00:00:00.000', 1, 21.72, N'Ship to 89-C', N'9012 - 12th Ave. S.', N'Seattle',
N'WA', N'10358', N'USA');
INSERT INTO Sales.Orders(orderid, custid, empid, orderdate, requireddate, shippe
ddate, shipperid, freight, shipname, shipaddress, shipcity, shipregion, shippost
alcode, shipcountry)
VALUES(10724, 51, 8, '20071030 00:00:00.000', '20071211 00:00:00.000', '200711
05 00:00:00.000', 2, 57.75, N'Ship to 51-A', N'6789 rue St. Laurent', N'Montral',
N'Qubec', N'10244', N'Canada');
INSERT INTO Sales.Orders(orderid, custid, empid, orderdate, requireddate, shippe
ddate, shipperid, freight, shipname, shipaddress, shipcity, shipregion, shippost
alcode, shipcountry)
VALUES(10725, 21, 4, '20071031 00:00:00.000', '20071128 00:00:00.000', '200711
05 00:00:00.000', 3, 10.83, N'Destination KKELL', N'Rua Ors, 4567', N'Sao Paulo',
N'SP', N'10162', N'Brazil');
INSERT INTO Sales.Orders(orderid, custid, empid, orderdate, requireddate, shippe
ddate, shipperid, freight, shipname, shipaddress, shipcity, shipregion, shippost
alcode, shipcountry)
VALUES(10726, 19, 4, '20071103 00:00:00.000', '20071117 00:00:00.000', '200712
05 00:00:00.000', 1, 16.56, N'Destination FRCGJ', N'5678 King George', N'London'
, NULL, N'10153', N'UK');
INSERT INTO Sales.Orders(orderid, custid, empid, orderdate, requireddate, shippe
ddate, shipperid, freight, shipname, shipaddress, shipcity, shipregion, shippost
alcode, shipcountry)
VALUES(10727, 66, 2, '20071103 00:00:00.000', '20071201 00:00:00.000', '200712
05 00:00:00.000', 1, 89.90, N'Ship to 66-A', N'Strada Provinciale 0123', N'Reggi
o Emilia', NULL, N'10288', N'Italy');
INSERT INTO Sales.Orders(orderid, custid, empid, orderdate, requireddate, shippe
ddate, shipperid, freight, shipname, shipaddress, shipcity, shipregion, shippost
alcode, shipcountry)
VALUES(10728, 62, 4, '20071104 00:00:00.000', '20071202 00:00:00.000', '200711
11 00:00:00.000', 2, 58.33, N'Ship to 62-A', N'Alameda dos Canarios, 8901', N'Sa
o Paulo', N'SP', N'10276', N'Brazil');
INSERT INTO Sales.Orders(orderid, custid, empid, orderdate, requireddate, shippe
ddate, shipperid, freight, shipname, shipaddress, shipcity, shipregion, shippost
alcode, shipcountry)
VALUES(10729, 47, 8, '20071104 00:00:00.000', '20071216 00:00:00.000', '200711
26 00:00:00.000', 3, 1.21, N'Ship to 46-C', N'Carrera 2345 con Ave. Bolvar #65-98
Llano Largo', N'Barquisimeto', N'Lara', N'10229', N'Venezuela');
INSERT INTO Sales.Orders(orderid, custid, empid, orderdate, requireddate, shippe
ddate, shipperid, freight, shipname, shipaddress, shipcity, shipregion, shippost
alcode, shipcountry)
VALUES(10900, 88, 1, '20080220 00:00:00.000', '20080320 00:00:00.000', '200803
04 00:00:00.000', 2, 1.66, N'Ship to 88-A', N'Rua do Mercado, 4567', N'Resende',
N'SP', N'10353', N'Brazil');
INSERT INTO Sales.Orders(orderid, custid, empid, orderdate, requireddate, shippe
ddate, shipperid, freight, shipname, shipaddress, shipcity, shipregion, shippost
alcode, shipcountry)
VALUES(10901, 35, 4, '20080223 00:00:00.000', '20080323 00:00:00.000', '200802
26 00:00:00.000', 1, 62.09, N'Destination UOUWK', N'Carrera 9012 con Ave. Carlos
Soublette #8-35', N'San Cristbal', N'Tchira', N'10197', N'Venezuela');
INSERT INTO Sales.Orders(orderid, custid, empid, orderdate, requireddate, shippe
ddate, shipperid, freight, shipname, shipaddress, shipcity, shipregion, shippost
alcode, shipcountry)
VALUES(10902, 24, 1, '20080223 00:00:00.000', '20080323 00:00:00.000', '200803
03 00:00:00.000', 1, 44.15, N'Destination NCKKO', N'Akergatan 7890', N'Brcke', NU
LL, N'10165', N'Sweden');
INSERT INTO Sales.Orders(orderid, custid, empid, orderdate, requireddate, shippe
ddate, shipperid, freight, shipname, shipaddress, shipcity, shipregion, shippost
alcode, shipcountry)
VALUES(10903, 34, 3, '20080224 00:00:00.000', '20080324 00:00:00.000', '200803
04 00:00:00.000', 3, 36.71, N'Destination DPCVR', N'Rua do Pao, 6789', N'Rio de J
aneiro', N'RJ', N'10194', N'Brazil');
INSERT INTO Sales.Orders(orderid, custid, empid, orderdate, requireddate, shippe
ddate, shipperid, freight, shipname, shipaddress, shipcity, shipregion, shippost
alcode, shipcountry)
VALUES(10904, 89, 3, '20080224 00:00:00.000', '20080324 00:00:00.000', '200802
27 00:00:00.000', 3, 162.95, N'Ship to 89-A', N'7890 - 12th Ave. S.', N'Seattle'
, N'WA', N'10356', N'USA');
INSERT INTO Sales.Orders(orderid, custid, empid, orderdate, requireddate, shippe
ddate, shipperid, freight, shipname, shipaddress, shipcity, shipregion, shippost
alcode, shipcountry)
VALUES(10905, 88, 9, '20080224 00:00:00.000', '20080324 00:00:00.000', '200803
06 00:00:00.000', 2, 13.72, N'Ship to 88-A', N'Rua do Mercado, 4567', N'Resende'
, N'SP', N'10353', N'Brazil');
INSERT INTO Sales.Orders(orderid, custid, empid, orderdate, requireddate, shippe
ddate, shipperid, freight, shipname, shipaddress, shipcity, shipregion, shippost
alcode, shipcountry)
VALUES(10906, 91, 4, '20080225 00:00:00.000', '20080311 00:00:00.000', '200803
03 00:00:00.000', 3, 26.29, N'Ship to 91-B', N'ul. Filtrowa 6789', N'Warszawa',
NULL, N'10365', N'Poland');
INSERT INTO Sales.Orders(orderid, custid, empid, orderdate, requireddate, shippe
ddate, shipperid, freight, shipname, shipaddress, shipcity, shipregion, shippost
alcode, shipcountry)
VALUES(10907, 74, 6, '20080225 00:00:00.000', '20080325 00:00:00.000', '200802
27 00:00:00.000', 3, 9.19, N'Ship to 74-B', N'4567, rue Lauriston', N'Paris', NU
LL, N'10313', N'France');
INSERT INTO Sales.Orders(orderid, custid, empid, orderdate, requireddate, shippe
ddate, shipperid, freight, shipname, shipaddress, shipcity, shipregion, shippost
alcode, shipcountry)
VALUES(10908, 66, 4, '20080226 00:00:00.000', '20080326 00:00:00.000', '200803
06 00:00:00.000', 2, 32.96, N'Ship to 66-B', N'Strada Provinciale 1234', N'Reggi
o Emilia', NULL, N'10289', N'Italy');
INSERT INTO Sales.Orders(orderid, custid, empid, orderdate, requireddate, shippe
ddate, shipperid, freight, shipname, shipaddress, shipcity, shipregion, shippost
alcode, shipcountry)
VALUES(10909, 70, 1, '20080226 00:00:00.000', '20080326 00:00:00.000', '200803
, 3.17, N'Ship to 64-B', N'Av. del Libertador 5678', N'Buenos Aires', NULL, N'10
283', N'Argentina');
INSERT INTO Sales.Orders(orderid, custid, empid, orderdate, requireddate, shippe
ddate, shipperid, freight, shipname, shipaddress, shipcity, shipregion, shippost
alcode, shipcountry)
VALUES(11020, 56, 2, '20080414 00:00:00.000', '20080512 00:00:00.000', '200804
16 00:00:00.000', 2, 43.30, N'Ship to 56-B', N'Mehrheimerstr. 1234', N'Kln', NULL
, N'10259', N'Germany');
INSERT INTO Sales.Orders(orderid, custid, empid, orderdate, requireddate, shippe
ddate, shipperid, freight, shipname, shipaddress, shipcity, shipregion, shippost
alcode, shipcountry)
VALUES(11021, 63, 3, '20080414 00:00:00.000', '20080512 00:00:00.000', '200804
21 00:00:00.000', 1, 297.18, N'Ship to 63-B', N'Taucherstrae 2345', N'Cunewalde',
NULL, N'10280', N'Germany');
INSERT INTO Sales.Orders(orderid, custid, empid, orderdate, requireddate, shippe
ddate, shipperid, freight, shipname, shipaddress, shipcity, shipregion, shippost
alcode, shipcountry)
VALUES(11022, 34, 9, '20080414 00:00:00.000', '20080512 00:00:00.000', '200805
04 00:00:00.000', 2, 6.27, N'Destination SCQXA', N'Rua do Pao, 7890', N'Rio de Ja
neiro', N'RJ', N'10195', N'Brazil');
INSERT INTO Sales.Orders(orderid, custid, empid, orderdate, requireddate, shippe
ddate, shipperid, freight, shipname, shipaddress, shipcity, shipregion, shippost
alcode, shipcountry)
VALUES(11023, 11, 1, '20080414 00:00:00.000', '20080428 00:00:00.000', '200804
24 00:00:00.000', 2, 123.83, N'Destination NZASL', N'Fauntleroy Circus 5678', N'
London', NULL, N'10133', N'UK');
INSERT INTO Sales.Orders(orderid, custid, empid, orderdate, requireddate, shippe
ddate, shipperid, freight, shipname, shipaddress, shipcity, shipregion, shippost
alcode, shipcountry)
VALUES(11024, 19, 4, '20080415 00:00:00.000', '20080513 00:00:00.000', '200804
20 00:00:00.000', 1, 74.36, N'Destination BBMRT', N'4567 King George', N'London'
, NULL, N'10152', N'UK');
INSERT INTO Sales.Orders(orderid, custid, empid, orderdate, requireddate, shippe
ddate, shipperid, freight, shipname, shipaddress, shipcity, shipregion, shippost
alcode, shipcountry)
VALUES(11025, 87, 6, '20080415 00:00:00.000', '20080513 00:00:00.000', '200804
24 00:00:00.000', 3, 29.17, N'Ship to 87-C', N'Torikatu 3456', N'Oulu', NULL, N'
10352', N'Finland');
INSERT INTO Sales.Orders(orderid, custid, empid, orderdate, requireddate, shippe
ddate, shipperid, freight, shipname, shipaddress, shipcity, shipregion, shippost
alcode, shipcountry)
VALUES(11026, 27, 4, '20080415 00:00:00.000', '20080513 00:00:00.000', '200804
28 00:00:00.000', 1, 47.09, N'Destination DICGM', N'Via Monte Bianco 7890', N'To
rino', NULL, N'10175', N'Italy');
INSERT INTO Sales.Orders(orderid, custid, empid, orderdate, requireddate, shippe
ddate, shipperid, freight, shipname, shipaddress, shipcity, shipregion, shippost
alcode, shipcountry)
VALUES(11027, 10, 1, '20080416 00:00:00.000', '20080514 00:00:00.000', '200804
20 00:00:00.000', 1, 52.52, N'Destination XJIBQ', N'1234 Tsawassen Blvd.', N'Tsa
wassen', N'BC', N'10129', N'Canada');
INSERT INTO Sales.Orders(orderid, custid, empid, orderdate, requireddate, shippe
ddate, shipperid, freight, shipname, shipaddress, shipcity, shipregion, shippost
alcode, shipcountry)
VALUES(11028, 39, 2, '20080416 00:00:00.000', '20080514 00:00:00.000', '200804
22 00:00:00.000', 1, 29.59, N'Destination DKMQA', N'Maubelstr. 0123', N'Brandenb
urg', NULL, N'10208', N'Germany');
INSERT INTO Sales.Orders(orderid, custid, empid, orderdate, requireddate, shippe
ddate, shipperid, freight, shipname, shipaddress, shipcity, shipregion, shippost
alcode, shipcountry)
VALUES(11029, 14, 4, '20080416 00:00:00.000', '20080514 00:00:00.000', '200804
, 85.80, N'Ship to 67-A', N'Av. Copacabana, 3456', N'Rio de Janeiro', N'RJ', N'1
0291', N'Brazil');
INSERT INTO Sales.Orders(orderid, custid, empid, orderdate, requireddate, shippe
ddate, shipperid, freight, shipname, shipaddress, shipcity, shipregion, shippost
alcode, shipcountry)
VALUES(11060, 27, 2, '20080430 00:00:00.000', '20080528 00:00:00.000', '200805
04 00:00:00.000', 2, 10.98, N'Destination DICGM', N'Via Monte Bianco 7890', N'To
rino', NULL, N'10175', N'Italy');
INSERT INTO Sales.Orders(orderid, custid, empid, orderdate, requireddate, shippe
ddate, shipperid, freight, shipname, shipaddress, shipcity, shipregion, shippost
alcode, shipcountry)
VALUES(11061, 32, 4, '20080430 00:00:00.000', '20080611 00:00:00.000', NULL, 3
, 14.01, N'Destination VYOBK', N'3456 Baker Blvd.', N'Eugene', N'OR', N'10191',
N'USA');
INSERT INTO Sales.Orders(orderid, custid, empid, orderdate, requireddate, shippe
ddate, shipperid, freight, shipname, shipaddress, shipcity, shipregion, shippost
alcode, shipcountry)
VALUES(11062, 66, 4, '20080430 00:00:00.000', '20080528 00:00:00.000', NULL, 2
, 29.93, N'Ship to 66-B', N'Strada Provinciale 1234', N'Reggio Emilia', NULL, N'
10289', N'Italy');
INSERT INTO Sales.Orders(orderid, custid, empid, orderdate, requireddate, shippe
ddate, shipperid, freight, shipname, shipaddress, shipcity, shipregion, shippost
alcode, shipcountry)
VALUES(11063, 37, 3, '20080430 00:00:00.000', '20080528 00:00:00.000', '200805
06 00:00:00.000', 2, 81.73, N'Destination KPVYJ', N'5678 Johnstown Road', N'Cork
', N'Co. Cork', N'10203', N'Ireland');
INSERT INTO Sales.Orders(orderid, custid, empid, orderdate, requireddate, shippe
ddate, shipperid, freight, shipname, shipaddress, shipcity, shipregion, shippost
alcode, shipcountry)
VALUES(11064, 71, 1, '20080501 00:00:00.000', '20080529 00:00:00.000', '200805
04 00:00:00.000', 1, 30.09, N'Ship to 71-C', N'9012 Suffolk Ln.', N'Boise', N'ID
', N'10307', N'USA');
INSERT INTO Sales.Orders(orderid, custid, empid, orderdate, requireddate, shippe
ddate, shipperid, freight, shipname, shipaddress, shipcity, shipregion, shippost
alcode, shipcountry)
VALUES(11065, 46, 8, '20080501 00:00:00.000', '20080529 00:00:00.000', NULL, 1
, 12.91, N'Ship to 46-C', N'Carrera 2345 con Ave. Bolvar #65-98 Llano Largo', N'B
arquisimeto', N'Lara', N'10229', N'Venezuela');
INSERT INTO Sales.Orders(orderid, custid, empid, orderdate, requireddate, shippe
ddate, shipperid, freight, shipname, shipaddress, shipcity, shipregion, shippost
alcode, shipcountry)
VALUES(11066, 89, 7, '20080501 00:00:00.000', '20080529 00:00:00.000', '200805
04 00:00:00.000', 2, 44.72, N'Ship to 89-A', N'7890 - 12th Ave. S.', N'Seattle',
N'WA', N'10356', N'USA');
INSERT INTO Sales.Orders(orderid, custid, empid, orderdate, requireddate, shippe
ddate, shipperid, freight, shipname, shipaddress, shipcity, shipregion, shippost
alcode, shipcountry)
VALUES(11067, 17, 1, '20080504 00:00:00.000', '20080518 00:00:00.000', '200805
06 00:00:00.000', 2, 7.98, N'Destination BJCXA', N'Walserweg 7890', N'Aachen', N
ULL, N'10145', N'Germany');
INSERT INTO Sales.Orders(orderid, custid, empid, orderdate, requireddate, shippe
ddate, shipperid, freight, shipname, shipaddress, shipcity, shipregion, shippost
alcode, shipcountry)
VALUES(11068, 62, 8, '20080504 00:00:00.000', '20080601 00:00:00.000', NULL, 2
, 81.75, N'Ship to 62-A', N'Alameda dos Canarios, 8901', N'Sao Paulo', N'SP', N'
10276', N'Brazil');
INSERT INTO Sales.Orders(orderid, custid, empid, orderdate, requireddate, shippe
ddate, shipperid, freight, shipname, shipaddress, shipcity, shipregion, shippost
alcode, shipcountry)
VALUES(11069, 80, 1, '20080504 00:00:00.000', '20080601 00:00:00.000', '200805
SUM(OD.qty) AS qty,
CAST(SUM(OD.qty * OD.unitprice * (1 - OD.discount))
AS NUMERIC(12, 2)) AS val
FROM Sales.Orders AS O
JOIN Sales.OrderDetails AS OD
ON O.orderid = OD.orderid
GROUP BY O.orderid, O.custid, O.empid, O.shipperid, O.orderdate, O.requireddate,
O.shippeddate;
GO
CREATE VIEW Sales.OrderTotalsByYear
WITH SCHEMABINDING
AS
SELECT
YEAR(O.orderdate) AS orderyear,
SUM(OD.qty) AS qty
FROM Sales.Orders AS O
JOIN Sales.OrderDetails AS OD
ON OD.orderid = O.orderid
GROUP BY YEAR(orderdate);
GO
CREATE VIEW Sales.CustOrders
WITH SCHEMABINDING
AS
SELECT
O.custid,
DATEADD(month, DATEDIFF(month, 0, O.orderdate), 0) AS ordermonth,
SUM(OD.qty) AS qty
FROM Sales.Orders AS O
JOIN Sales.OrderDetails AS OD
ON OD.orderid = O.orderid
GROUP BY custid, DATEADD(month, DATEDIFF(month, 0, O.orderdate), 0);
GO
CREATE VIEW Sales.EmpOrders
WITH SCHEMABINDING
AS
SELECT
O.empid,
DATEADD(month, DATEDIFF(month, 0, O.orderdate), 0) AS ordermonth,
SUM(OD.qty) AS qty,
CAST(SUM(OD.qty * OD.unitprice * (1 - discount))
AS NUMERIC(12, 2)) AS val,
COUNT(*) AS numorders
FROM Sales.Orders AS O
JOIN Sales.OrderDetails AS OD
ON OD.orderid = O.orderid
GROUP BY empid, DATEADD(month, DATEDIFF(month, 0, O.orderdate), 0);
GO
CREATE FUNCTION dbo.GetNums(@low AS BIGINT, @high AS BIGINT) RETURNS TABLE
AS
RETURN
WITH
L0 AS (SELECT c FROM (SELECT 1 UNION ALL SELECT 1) AS D(c)),
L1 AS (SELECT 1 AS c FROM L0 AS A CROSS JOIN L0 AS B),
L2
L3
L4
L5
Nums
AS
AS
AS
AS
AS