我想解决的需求
本人从事金融行业,对于项目管理有比较大的需求,每个项目报告里有自己的特殊内容,但也有共性元素,例如主体评级、行业等。我希望能有个文档界面是能够汇总我某个文档树下的所有项目的基本信息,是根据我每个文档里某级标题进行汇总。
目前思源笔记属性视图还没等到,而且让我手动去编辑属性是没有在正文里编辑 markdown 来得舒服的。
最后呈现的结果类似 Obsidian 里的 dataview 吧,我看之前也有群友发求助帖,没得到解答,所以自己试了一下。
最后得到类似如下的结果:
项目管理的文档长这样:
打开每个项目的内容长这样:
QUERY+SQL 代码
首先要安装 query 插件,然后 SQL 代码如下:
SELECT
'[' || b0.content || '](siyuan://blocks/' || b0.id || ')' AS __00____pre__项目名称,
MAX(CASE
WHEN b1.parent_id IN (SELECT id FROM blocks WHERE content LIKE '主体评级')
THEN '[' || b1.content || '](siyuan://blocks/' || b1.id || ')'
ELSE NULL
END)
AS __02____pre__主体评级,
MAX(CASE
WHEN b1.parent_id IN (SELECT id FROM blocks WHERE content LIKE '行业')
THEN '[' || b1.content || '](siyuan://blocks/' || b1.id || ')'
ELSE NULL
END)
AS __03____pre__行业,
MAX(CASE
WHEN b1.parent_id IN (SELECT id FROM blocks WHERE content LIKE '股权结构')
THEN '[' || b1.content || '](siyuan://blocks/' || b1.id || ')'
ELSE NULL
END)
AS __04____pre__股权结构,
MAX(CASE
WHEN b1.parent_id IN (SELECT id FROM blocks WHERE content LIKE '问题')
THEN '[' || b1.content || '](siyuan://blocks/' || b1.id || ')'
ELSE NULL
END)
AS __04____pre__问题
FROM blocks AS b1 INNER JOIN blocks AS b0 ON b1.root_id = b0.id
WHERE
(b1.parent_id IN (SELECT id FROM blocks WHERE type = 'h'))
AND (b0.id IN (SELECT root_id FROM blocks WHERE hpath LIKE '%项目整理/%'))
GROUP BY b1.root_id
写在最后
- SQL 的格式不是很规范,我也没学过,单纯按自己能读懂的格式写的
- 标题下的信息内容只能读取 1 行,第 2 行的信息读取不了,应该也有代码能解决,我懒得写了
- 本文主要是希望能启发下各位群友,我知道还有修改时间等可以加上去的需求,我没有完善,也不是我的需求
- 看好思源笔记,求属性视图赶紧出!
以上~
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于