我安装了trac来管理我的在线项目.我还在其中安装了日期插件DateFieldPlugin.我无法在自定义报告中显示此日期.
以下代码生成正常报告.
SELECT p.value AS __color__,
owner AS __group__,
id AS ticket, severity, summary, component, milestone, t.type AS type, time AS created,
changetime AS _changetime, description AS _description,reporter AS _reporter
FROM ticket t
LEFT JOIN enum p ON p.name = t.priority AND p.type = 'priority'
WHERE status = 'assigned'
ORDER BY owner, p.value, t.type, time
Run Code Online (Sandbox Code Playgroud)
我想要这样的东西:
SELECT p.value AS __color__,
owner AS __group__,
id AS ticket, severity, summary, component, milestone, t.type AS type, time AS created,
changetime AS _changetime, description AS _description,
reporter AS _reporter, c.value AS Duedate
FROM ticket t
LEFT JOIN enum p ON p.name = t.priority AND p.type = 'priority', ticket_custom c
WHERE status = 'assigned'
ORDER BY owner, p.value, t.type, time
Run Code Online (Sandbox Code Playgroud)
上面的代码显示了截止日期列,尽管它多次显示一个任务行.
有人可以帮助我吗?
德里克在那里辞职.不过,这是工作中的一个:
SELECT p.value AS __color__,
owner AS __group__,
id AS ticket, severity, summary, component, milestone, t.type AS type, time AS created,
changetime AS _changetime, description AS _description,
reporter AS _reporter, c.value AS Duedate
FROM ticket t
LEFT JOIN enum p ON p.name = t.priority AND p.type = 'priority'
LEFT OUTER JOIN ticket_custom c ON t.id = c.ticket AND c.name = 'due_date'
WHERE status = 'assigned'
ORDER BY owner, p.value, t.type, time
Run Code Online (Sandbox Code Playgroud)
只有你必须替换c.name值才能与你的日期字段名称匹配,如果它不像我的配置那样'due_date'.
背景:'ticket_custom'表定义只是每行一个键值对,因为对模式的调用显示:
sqlite> .schema ticket_custom
CREATE TABLE ticket_custom (
ticket integer,
name text,
value text,
UNIQUE (ticket,name)
);
Run Code Online (Sandbox Code Playgroud)
请注意,主键不仅仅是票号,还包括票号(编号)和(自定义列)名称.因此,JOIN上需要一个额外的WHERE子句,或者您仍然会获得多行 - 每个匹配票证的每个自定义字段都有一行.这与主表'ticket'形成对比,其中一张票的所有信息都在一行中.