Sorting by minimum of scheduled and deadline?

Something like this:

(or-join [?block ?lowdate]
  (and
    [?block :block/scheduled ?scheduled]
    (not [?block :block/deadline])
    [(<= ?lowdate ?scheduled)]
  )
  (and
    [?block :block/deadline ?deadline]
    (not [?block :block/scheduled])
    [(<= ?lowdate ?deadline)]
  )
  (and
    [?block :block/scheduled ?scheduled]
    [?block :block/deadline ?deadline]
    [(<= ?scheduled ?deadline)]
    [(<= ?lowdate ?scheduled)]
  )
  (and
    [?block :block/scheduled ?scheduled]
    [?block :block/deadline ?deadline]
    [(<= ?deadline ?scheduled)]
    [(<= ?lowdate ?deadline)]
  )
)
1 Like