Dataview sorting issue - existing vs. not existing daily notes

I am new to Dataview and am I am having an issue with sorting notes by date. For each book note I list an attribute:

date_finished:: [[2023-07-19]]

I enter the date as a page, but I don’t create a daily note every day so some refer to non-existing notes. I have a table in a “Library” note where I am trying to sort by “date_finished”. It works except for the books where the date_finished actually points to an existing note.
I figured out from another post that the value of date_finished is the raw date when there is no file, but a path when the file exists, which messes up the sorting.

My simplified table code is:

TABLE author, medium, date_finished AS "date read", rating, "![20](" + cover + ")" as cover, meta(date_finished) as meta
FROM #book 
WHERE!= "book template"
WHERE status!= "#book/status/readingnow"
SORT date_finished DESC

I tried looking in meta(date_finished) but there are no fields that just return the value.

How do I sort these notes just based on date, irrespective to whether or not the daily note exists?


I can’t replicate your results in local tests, but do you get any joy from:

SORT file.frontmatter.date_finished asc


If you want to query the metadata available in a particular note, you can use this code:

LIST this

Thanks for replying and sorry for the slow response.

The first suggestion did not work, the order is now more scrambled than before.

Regarding the edit, I am not sure how to helps with an index note like that one I am having trouble with, but I am possibly missing something. Could you elaborate please?

You could try the hack of using:

SORT string(date_finished) DESC 

This I believe would return the display vakue, independent of whether the note exists or not.