Dataview Result + Emoji based on Properties

What I’m trying to do

I’m trying to make a master table in my monthly note with some tweaks to properties shown.

Some context to what I have.

In my daily notes, I log media consumed as below:

Media


  • ShowLog:: [[show-name]] | 3x02 | episode name
  • FilmLog:: [[film-name]]
  • ShowLog:: [[show-name]] | 3x04 | episode name
  • CineLog:: [[film-name]] | cinema-name
  • NFic:: [[non-fiction-book-title]] | chapter-name
  • Fic:: [[fiction-book-title]] | chapter-name
  • FilmLog:: [[film-name-2]]
  • NFic:: [[non-fiction-book-title]] | chapter-name

Things I have set-up:

Just reads:

TABLE WITHOUT ID Date, readList as "Log"
FROM [[2025-W06]] and #periodic/journal/daily
FLATTEN dateformat(file.day, "dd-MM") as Date 
WHERE Fic OR NFic
FLATTEN list(nonnull(flat(list(Fic, NFic)))) as readList
SORT file.name desc

What I’d like is for each entry, a prefix emoji:

Eg: for non-fiction… pre-pending a red book emoji, and an orange for a fiction one
:closed_book: [[non-fiction-book-title]] | chapter-name
:orange_book: [[fiction-book-title]] | chapter-name

similarly, if expanding the media table in the monthly log… would like to see:
:tv: for ShowLog, :clapper: for CineLog, :video_camera: for FilmLog etc

Things I have tried:

TABLE w AS Watched
FROM #periodic/journal/daily AND [[2024-10]]
WHERE CineLog OR ShowLog OR FilmLog
FLATTEN (choice(ShowLog, "📺 " + ShowLog, choice(FilmLog, "📹 " + FilmLog, "🎬 " + CineLog))) AS w
SORT file.name DESC

Can’t seem to land at an elegant solution where there aren’t duplicates of dates, as well as entries. I feel this is because I’ve lost track of what is a list and what is not, plus I feel I’m not utilizing the fact that they are all parked under the h3 of “media”