3

以下を使用して、クローズされたチケットを表示し、新しくクローズされたチケットを一番上に表示します。

SELECT 
   p.value AS __color__,
   id AS ticket, 
   summary, 
   component,
   version,
   milestone,
   t.type AS type, 
   owner, 
   status,
   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 = 'closed'
  ORDER BY changetime DESC, time DESC, CAST(p.value AS integer), milestone, t.type, time

現在表示されている列は次のとおりです。

Ticket
Summary
Component
Version
Milestone
Type
Owner
Status
Created

締め切り日をレポート ビューに追加したいと思います (そして、日付の違いを示す 3 列目)。これについてどうすればいいですか?

4

2 に答える 2

2

RSS フィードだけでなく、レポート ビューにフィールドを表示するには、列名から先頭のアンダースコアを削除します。changetime AS _changetime問題のある行です。に変更してみてくださいchangetime AS closed。注: のように修正する必要がある場合がありますdatetime(changetime/1000000, 'unixepoch') AS closed

julianday日付の差を取得するには、2 つの列を減算してみてください。それぞれが のように SQLite 関数への呼び出しでラップされていますjulianday('now') - julianday(changetime/1000000, 'unixepoch') AS closedago

于 2012-10-26T19:33:13.260 に答える
1

締め切り日を追加することは、私が考えるほど簡単ではありません。次の例は、トリックを教えてくれます。

SELECT p.value AS __color__,
       ticket, summary, component, version, milestone, t.type, owner,
       t.time AS created,
       MAX(tc.time) as date
  FROM ticket_change tc
  LEFT JOIN ticket t ON tc.ticket=id
  LEFT JOIN enum p ON p.name = t.priority AND p.type = 'priority'
 WHERE field='status'
   AND newvalue='closed'
 GROUP by ticket
 ORDER BY tc.time DESC, t.time DESC, CAST(p.value AS integer), milestone, t.type

'ticket_change' db テーブルに JOIN が必要であり、最後の締め日を確実に取得するには、最後から順に並べ替える必要があります。

于 2012-10-29T20:37:49.123 に答える