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