• TSQL技巧(一) 子查询(subquery)


    子查询分为独立子查询和相关子查询

    什么时候该利用子查询,我们可以先来看下面几个实际的例子。

    我们以Northwind数据库为例

    1. 返回在每月最后实际订单日期发生的订单(独立子查询)

       思路:由于每个月最后实际订单最后一天是唯一的,所以我们

                可以利用内层查询分组来实现。

    SELECT OrderID, CustomerID, EmployeeID, OrderDate, RequiredDate 
    FROM dbo.Orders
    WHERE OrderDate IN
      (SELECT MAX(OrderDate) 
       FROM dbo.Orders
       GROUP BY EmployeeID)

    2. 为每个员工返回具有最大OrderDate的订单(相关子查询)

       思路:这个问题不能再采用上面相同的策略了,因为几个员工可能会具有相同的订单日期,所以Max(OrderDate)

               可能返回员工A的,也可能是员工B的。

               那么,如何才能让最大订单日期定位到某个员工呢?

               这个时候,我们必须利用到相关子查询,唯一的办法就是将内部查询的EmployeeID与

               外部查询的EmployeeID匹配。

    SELECT OrderID, CustomerID, EmployeeID, OrderDate, RequiredDate 
    FROM dbo.Orders AS O1
    WHERE OrderDate =
      (SELECT MAX(OrderDate)
       FROM dbo.Orders AS O2
       WHERE O2.EmployeeID = O1.EmployeeID)
    技术改变世界
  • 相关阅读:
    各种机器学习方法概念
    深入理解拉格朗日乘子法(Lagrange Multiplier) 和KKT条件
    肤色识别
    创建自己的窗口消息
    模糊C均值
    Fisher线性判别
    用遗传算法加强足球游戏的人工智能
    人工智能-遗传算法解决推箱子问题现实
    LBP特征
    VC 制作系统托盘程序实现将窗口最小化到系统托
  • 原文地址:https://www.cnblogs.com/davidgu/p/2439975.html
Copyright © 2020-2023  润新知