报告查询 - 列的变量nr

时间:2017-04-01 06:34:28

标签: sql postgresql

我有一张表,可以为雇主的雇员“索引”所捕获的文件。每个文档都有一个唯一的ID,一个URI,捕获的日期,staffid(FK)和一个名为“tag”的文档类型列

gv2=# \d staffdoc
                Table "zoozooland_789166.staffdoc"
   Column   |            Type             |       Modifiers       
------------+-----------------------------+-----------------------
 id         | uuid                        | not null
 asseturi   | text                        | not null
 created    | timestamp without time zone | not null
 created_by | uuid                        | not null
 tag        | text                        | not null
 is_active  | boolean                     | not null default true
 staffid    | uuid                        | not null
Foreign-key constraints:
    "staffdoc_staffid_fkey" FOREIGN KEY (staffid) REFERENCES staffmember(id)
Inherits: assetdoc

我想写一份报告,用于突出显示遗失的文件。

对于每个工作人员,报告应该有一个列用于每个文档标记类型,因此预先知道列的nr。

目前我在应用程序中完成所有这些操作 - 生成所有可能标记的列表(SELECT DISTINCT tag FROM table),生成所有可能的人员ID列表,然后为每个员工ID运行多个查询以获取在每个标记值的已创建列中具有最大值的文档。

我很确定我至少应该能够将每个文档类型(标记值)(每个职员ID的最新文档)优化为一个查询,这将是一个足够好的优化。

典型情况是4或5个文档标记值(文档类型),因此运行5个查询比运行5个人员查询更容易接受。

在最终报告中,我有以下专栏:

 Staff-member Name, doctype1, doctype2, doctype2, etc  

该名称是从员工成员表中“加入”的。 doctype列中的值是该职员的该doc标签的日期的最后(MAX)值,如果该职员缺少该文档,则为“无”。

FWIW我正在使用Postgres 9.5

0 个答案:

没有答案