2013-03-07 80 views
0

我想为“活动故障单”报告中显示的每张故障单添加回复计数。显示Trac回复/评论数量

这里是我当前的查询:

SELECT p.value AS __color__, 
    id AS ticket, summary, component, version, milestone, t.type AS type, 
    reporter, owner, status, 
    time AS created, 
    changetime AS _changetime, description AS _description, 
    date(changetime/1000000, 'unixepoch') as LastUpdate, 
    reporter AS _reporter 
    FROM ticket t 
    LEFT JOIN enum p ON p.name = t.priority AND p.type = 'priority' 
    WHERE status <> 'closed' 
    ORDER BY CAST(p.value AS integer), milestone, t.type, time 

是否有可能添加的回复/评论数?

回答

1

使用子查询它可能看起来像

SELECT p.value AS __color__, 
    id AS ticket, summary, component, version, milestone, t.type AS type, 
    reporter, owner, status, 
    time AS created, 
    changetime AS _changetime, description AS _description, 
    date(changetime/1000000, 'unixepoch') as LastUpdate, 
    reporter AS _reporter, 
    CASE WHEN c.count ISNULL OR c.count = '' THEN 0 ELSE c.count 
    END AS comments 
FROM ticket t 
LEFT JOIN (
    SELECT ticket, count(newvalue) AS count 
    FROM ticket_change 
    WHERE field = 'comment' AND NOT newvalue = '' 
    GROUP by ticket) AS c 
    ON t.id = c.ticket 
LEFT JOIN enum p ON p.name = t.priority AND p.type = 'priority' 
WHERE status <> 'closed' 
ORDER BY CAST(p.value AS integer), milestone, t.type, time 

并不是所有列名需要包括表名称,但它不会伤害知道它们的来源,特别是如果一个人不知道太多关于分贝架构。

CASE表达式用于填充票据的“评论”列,但没有评论。否则,这些单元将只是空的。

AND NOT newvalue =''排除没有真正意见的更改,例如更改所有者重新分配。

我更希望通过机票ID订购,但它取决于打开的机票数量。