|
本帖最后由 cgsilicone 于 2016-5-17 08:42 编辑
定义一个函数,就可以用查询得到要求的结果。
Function 排序(A列数据 As String, B列数据 As String)
Set 数据表 = CurrentDb.OpenRecordset("SELECT A FROM 表 GROUP BY A ORDER BY A")
临时数据1 = ""
Do While 数据表!A <> A列数据
临时数据2 = DLookup("Max(B)", "表", "A='" & 数据表!A & "'")
If 临时数据1 <> 临时数据2 Then
临时数据1 = 临时数据2
Else
临时数据1 = DLookup("Max(B)", "表", "A='" & 数据表!A & "' and B<>'" & 临时数据2 & "'")
End If
数据表.MoveNext
Loop
If 临时数据1 = B列数据 Then 排序 = "0" & B列数据 Else 排序 ="1" & B列数据
End Function
然后一个查询就可以了 “SELECT 表.* FROM 表 ORDER BY 表.A, 排序([A],[B]);” |
|