• Northwind学习笔记


    一、单表查询

    --1.查询订购日期在1996年7月1日至1996年7月15日之间的订单的订购日期、订单ID、客户ID和雇员ID等字段的值
    
    SELECT OrderID ,
           CustomerID ,
           EmployeeID ,
           OrderDate FROM dbo.Orders WHERE OrderDate BETWEEN '19960701' AND '19960715'

    --2.--查询“Northwind”示例数据库中供应商的ID、公司名称、地区、城市和电话字段的值。条件是“地区等于Western”并且“联系人头衔等于Sales Representative”。
    
    SELECT SupplierID ,
           CompanyName ,
           City ,
           Region ,
           Phone  FROM [dbo].Suppliers WHERE Region='Western' AND ContactTitle='Sales Representative'

    二、多表查询

    --6.查询“10248”和“10254”号订单的订单ID、运货商的公司名称、订单上所订购的产品的名称
    
    SELECT a.OrderID AS '订单ID',a.ShipName AS '运货商的公司',d.ProductName AS '产品的名称' FROM [dbo].[Orders] AS a 
    JOIN dbo.Shippers AS b ON b.ShipperID = a.ShipVia
     JOIN dbo.[Order Details] AS c ON c.OrderID = a.OrderID JOIN dbo.Products AS d ON d.ProductID = c.ProductID 
    WHERE a.OrderID=10248 OR a.OrderID=10254;

    --10.查询单价介于10至30元的所有产品的产品ID、产品名称和库存量
    SELECT ProductID AS '产品ID',
           ProductName AS '产品名称',
           UnitsInStock AS '库存量' FROM [dbo].[Products] WHERE UnitPrice BETWEEN 10 AND 30

    --11.--查询 单价大于20元  的所有 产品 的 ‘产品名称’、‘单价’以及‘供应商的公司名称’、‘电话’
    
    SELECT  a.ProductName AS '产品名称',
            a.UnitPrice AS '单价',
            b.CompanyName AS '供应商的公司名称',
            b.Phone AS '电话'
    FROM    [dbo].[Products] AS a
            JOIN dbo.Suppliers AS b ON b.SupplierID = a.SupplierID;

    --7.查询“10248”和“10254”号 '订单' 的订单ID、订单上所订购的'产品'的名称及其销售金额
    SELECT a.OrderID AS '订单ID',c.ProductName AS '产品名',a.UnitPrice*a.Quantity AS '销售金额' FROM [dbo].[Order Details] AS a 
    JOIN dbo.Orders AS b ON b.OrderID = a.OrderID 
    JOIN dbo.Products AS c ON c.ProductID = a.ProductID WHERE a.OrderID=10248 OR a.OrderID=10254;

    三、综合查询

    --8.查询所有运货商的公司名称和电话
    select a.CompanyName ,
           a.Phone from [dbo].[Shippers] as a

    
    
    --11.--查询 单价大于20元  的所有 产品 的 ‘产品名称’、‘单价’以及‘供应商的公司名称’、‘电话’

    SELECT  a.ProductName AS '产品名称',
            a.UnitPrice AS '单价',
            b.CompanyName AS '供应商的公司名称',
            b.Phone AS '电话'
    FROM    [dbo].[Products] AS a
            JOIN dbo.Suppliers AS b ON b.SupplierID = a.SupplierID
            WHERE a.UnitPrice>20;
     

    --12.--查询 London和Sao Paulo的客户([dbo].[Customers]) 在1996年 订购的所有订单的'订单ID'、所订购的'产品名称'和'数量'
    
    SELECT b.OrderID,c.ProductName,b.Quantity FROM 
    dbo.Orders AS a 
    JOIN dbo.[Order Details] AS b ON b.OrderID = a.OrderID
    JOIN dbo.Products AS c ON  c.ProductID = b.ProductID
    JOIN dbo.Customers AS d ON  d.CustomerID = a.CustomerID 
    WHERE (d.City='London' OR d.City='Sao Paulo') AND DATEPART(YEAR,a.OrderDate)='1996';

    --13.查询地区为NM 客户 的每份 订单 的 '订单ID'、'产品名称'和'销售金额'
    SELECT b.OrderID,d.ProductName,c.UnitPrice*c.Quantity AS '销售金额' 
    FROM dbo.Customers AS a 
    JOIN dbo.Orders AS b ON b.CustomerID = a.CustomerID 
    JOIN dbo.[Order Details] AS c ON c.OrderID = b.OrderID 
    JOIN dbo.Products AS d ON d.ProductID = c.ProductID 
    WHERE a.Region = 'NM'

    --14.按 运货商公司名称,统计 1997年 由各个运货商承运的 '订单的总数量'
    
    SELECT a.CompanyName AS '运货商公司名称',COUNT(*) AS '由运货商承运的订单的总数量' 
    FROM [dbo].[Shippers] AS a 
    JOIN dbo.Orders AS b ON b.ShipVia = a.ShipperID WHERE YEAR(b.OrderDate)='1997'
    GROUP BY a.CompanyName

    --15.统计 1997年上半年 的 每份订单 上所订购的 产品 的 总'数量'
    SELECT a.OrderID AS '产品',SUM(a.Quantity) AS '总数量' FROM [dbo].[Order Details] AS a 
    JOIN dbo.Orders AS b ON b.OrderID = a.OrderID 
    WHERE b.OrderDate>'19970701' GROUP BY a.OrderID

    --16.统计 各类产品 的 平均价格
    SELECT b.CategoryName,AVG(a.UnitPrice) AS '平均价格' FROM [dbo].[Products] AS a 
    JOIN dbo.Categories AS b ON b.CategoryID = a.CategoryID
    GROUP BY b.CategoryName

  • 相关阅读:
    线性代数之行列式的C#研究实现
    政府部门域名系统杂谈
    C#实现在foreach中删除集合中的元素
    RestServer 2.0 正式版发布
    常见的几种开源协议
    PostgreSQL学习手册(常用数据类型)
    一个很简单的淘宝优惠券搜索助手 大家看看有没有用吧
    做了一个淘宝内部优惠券分享平台支持微信公众号以及网站
    二十三种设计模式之原型模式的C#实现
    arcgis,mapinfo(mapxtreme),openlayers专业GIS系统开发
  • 原文地址:https://www.cnblogs.com/winchance/p/6295785.html
Copyright © 2020-2023  润新知