Northwind數據庫練習及參考答案


--查詢訂購日期在1996年7月1日至1996年7月15日之間的訂單的訂購日期、訂單ID、客戶ID和雇員ID等字段的值
Create View Orderquery
as
Select OrderDate,OrderID,CustomerID,EmployeeID
from  Orders 
where OrderDate Between '1996-07-01' and '1996-07-15'

Select * from Orderquery

--查詢“Northwind”示例數據庫中供應商的ID、公司名稱、地區、城市和電話字段的值。條件是“地區等於華北”並且“聯系人頭銜等於銷售代表”。
Select SupplierID,CompanyName,Address,City
from suppliers
where Region='華北' and ContactTitle='銷售代表'

--查詢“Northwind”示例數據庫中供應商的ID、公司名稱、地區、城市和電話字段的值。其中的一些供應商位於華東或華南地區,另外一些供應商所在的城市是天津
Select SupplierID,CompanyName,Region,City,Phone
from Suppliers
where Region in ('東北','華南')
or City='天津'

--查詢“Northwind”示例數據庫中位於“華東”或“華南”地區的供應商的ID、公司名稱、地區、城市和電話字段的值
Select SupplierID,CompanyName,Region,City,Phone
from Suppliers
where Region in ('東北','華南')
多表查詢

-- 查詢訂購日期在1996年7月1日至1996年7月15日之間的訂單的訂購日期、訂單ID、相應訂單的客戶公司名稱、負責訂單的雇員的姓氏和名字等字段的 值,並將查詢結果按雇員的“姓氏”和“名字”字段的升序排列,“姓氏”和“名字”值相同的記錄按“訂單 ID”的降序排列
Create procedure orderquery2
@StartOrderDate datetime='1998-01-02 00:00:00.000',
@EndOrderDate datetime='1998-01-31 23:59:59.997'
with encryption
as
Select Orders.OrderDate,Orders.OrderID,Customers.CompanyName,Employees.LastName,Employees.FirstName
from Orders join Customers
on Customers.CustomerID=Orders.CustomerID
join Employees
on Employees.EmployeeID=Orders.EmployeeID
Where OrderDate between @StartOrderDate  and @EndOrderDate  or OrderDate between '1998-01-01 00:00:00.000' and '1998-01-31 23:59:59.997'
Order By LastName,FirstName ASC,OrderID DESC

execute orderquery2 '1996-07-01 00:00:00.000''1996-07-15 23:59:59.999'

--查詢“10248”和“10254”號訂單的訂單ID、運貨商的公司名稱、訂單上所訂購的產品的名稱
Create view orderquery3
as
Select Orders.OrderID,Shippers.CompanyName,ProductName
From Orders join Shippers
on Shippers.ShipperID=Orders.ShipVia
join [Order Details]
on [Order Details].OrderID=Orders.OrderID
join Products
on Products.ProductID=[Order Details].ProductID

Select * from orderquery3
where OrderID =10248 or OrderID=10254

--查詢“10248”和“10254”號訂單的訂單ID、訂單上所訂購的產品的名稱、數量、單價和折扣
Create view orderquery4
as
Select Orders.OrderID,ProductName,quantity,Products.unitprice
From  [Order Details] join Orders
on [Order Details].orderid=Orders.orderid
join Products
on Products.ProductID=[Order Details].ProductID

Select * from orderquery3
where OrderID =10248 or OrderID=10254

--查詢“10248”和“10254”號訂單的訂單ID、訂單上所訂購的產品的名稱及其銷售金額
Create view orderquery5
as
Select Orders.OrderID,ProductName,Products.unitprice*quantity as '銷售金額'
From  [Order Details] join Orders
on [Order Details].orderid=Orders.orderid
join Products
on Products.ProductID=[Order Details].ProductID

Select * from orderquery5
where OrderID =10248 or OrderID=10254
綜合查詢

--查詢所有運貨商的公司名稱和電話
select companyname,phone
from Shippers

--查詢所有客戶的公司名稱、電話、傳真、地址、聯系人姓名和聯系人頭銜
select companyname,fax,phone,address,contactname,contacttitle
from customers

--查詢單價介於10至30元的所有產品的產品ID、產品名稱和庫存量
select productid,productname,unitsinstock
from products
where unitprice between 10 and 30

--查詢單價大於20元的所有產品的產品名稱、單價以及供應商的公司名稱、電話
select productname,unitprice,suppliers.companyname,suppliers.phone
from suppliers join products
on suppliers.supplierid=products.supplierid
where unitprice>20

--查詢上海和北京的客戶在1996年訂購的所有訂單的訂單ID、所訂購的產品名稱和數量
select orders.orderid,productname,quantity,city
from [order details] join products
on [order details].productid=products.productid
join orders
on [order details].orderid=orders.orderid
join customers
on orders.customerid=customers.customerid
where city in('北京' ,'上海')
and
OrderDate between '1996-00-00 00:00:00' and '1996-12-31 23:59:59.999'

--查詢華北客戶的每份訂單的訂單ID、產品名稱和銷售金額
select orders.orderid,productname,[order details].unitprice*quantity as 銷售金額
from [order details] join products
on [order details].productid=products.productid
join orders
on [order details].orderid=orders.orderid
join customers
on orders.customerid=customers.customerid
where region='華北'

--按運貨商公司名稱,統計1997年由各個運貨商承運的訂單的總數量
select companyname,count(*)
from shippers join orders
on shippers.shipperid=orders.shipvia
where year(orderdate)=1997
group by companyname

--統計1997年上半年的每份訂單上所訂購的產品的總數量
select orders.orderid,sum(quantity)
from [order details] join orders
on [order details].orderid=orders.orderid
where year(orderdate)=1997 and month(orderdate)>=1
and month(orderdate)<=6
group by orders.orderid

--select * from [order details] join orders
on [order details].orderid=orders.orderid
where orders.orderid=10400 and year(orderdate)=1997

--統計各類產品的平均價格
select categories.categoryname,avg(unitprice)
from products join categories
on products.categoryid=categories.categoryid
group by categories.categoryname

--統計各地區客戶的總數量
select count(*)
from customers
where region is not null
group by region 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM