Tralasciando la teoria…
Per realizzare quanto chiesto l'unico sistema è realizzare una UDF, una funzione VBA, che, passando tutti e 4 i campi, restituisca la data più antica…!
Una cosa perditempo come questa, efficienza bassa ma temo non ci siano strade più performanti dal momento che la variabilità dei campi va validata…
Public Function getOlder(dt1 As Variant, dt2 As Variant, dt3 As Variant, dt4 As Variant) As Date
Dim s As String
Dim item As Variant
Dim Items As Variant
Dim dtOlder As Date
If Not IsNull(dt1) Then s = s & CStr(dt1) & ";"
If Not IsNull(dt2) Then s = s & CStr(dt2) & ";"
If Not IsNull(dt3) Then s = s & CStr(dt3) & ";"
If Not IsNull(dt4) Then s = s & CStr(dt4) & ";"
If Len(s) > 0 Then s = Mid$(s, 1, Len(s) - 1)
If Len(s) > 0 Then
s = Mid$(s, 1, Len(s) - 1)
Items = Split(s, ";")
dtOlder = Items(0)
For Each item In Items
If CDate(item) < dtOlder Then dtOlder = CDate(item)
Next
getOlder = dtOlder
End If
End Function
Questa funzione restituirà un Campo Calcolato sul quale potrai ORDINARE.
SELECT *,getOlder(dt1,dt2,dt3,dt4) AS Older FROM T1 ORDER BY...