INNER JOIN 运算示例 (DAO)

INNER JOIN 运算示例

此示例创建了两个对等联接:一个是在订货明细表和订单表之间,另一个是在订单表和员工表之间。这是必需的,因为员工表不含业务人员数据,并且订货明细表不含员工数据。查询生成员工和他们的业绩列表。

此示例调用过程 EnumFields 过程,且可以在 SELECT 语句示例中找到该过程。

Sub InnerJoinX()

   Dim dbs As Database, rst As Recordset

   ' 在您的计算机中修改此行使其正确指到 Northwind 的路径。

   Set dbs = OpenDatabase("Northwind.mdb")

   ' 对运费超过 $100 的订单,

 

   ' 在订单明细和订单表之间创建联接

   '

   ' 并且在订单和员工表之间创建联接。列出员工和他们的业绩

   '

   Set rst = dbs.OpenRecordset("SELECT DISTINCTROW " _

       & "Sum(UnitPrice * Quantity) AS Sales, " _

       & "(FirstName & Chr(32) & LastName) AS Name " _

       & "FROM Employees INNER JOIN(Orders " _

       & "INNER JOIN [Order Details] " _

       & "ON [Order Details].OrderID = " _

       & "Orders.OrderID ) " _

       & "ON Orders.EmployeeID = " _

       & "Employees.EmployeeID " _

       & "GROUP BY (FirstName & Chr(32) & LastName);")

 

   ' populateRecordset。

   rst.MoveLast

 

   ' 调用 EnumFields 来打印记录集的内容。

   '传递记录集对象和要求的字符宽度。

   '

   EnumFields rst, 20

   dbs.Close

End Sub