0

私は現在、テーブルに保存されている最後のアクションの日付に基づいてエイジング レポートに取り組んでいます。次の表を参照してください。

RequestNo   UserCode    LastActionDate      ActionType
REQ1        407     12/14/2012 9:47     Saved
REQ1        407     12/14/2012 9:48     Submitted
REQ1        407     12/14/2012 9:48     Approved
REQ1        203     12/17/2012 9:54     Reviewed
REQ1        242     12/18/2012 10:29    WF Setup in Dev.
REQ1        203     12/18/2012 15:14    Transport to prod.
REQ1        242     12/18/2012 15:16    Completed
REQ2        407     12/27/2012 10:36    Submitted
REQ2        456     12/27/2012 11:18    Approved
REQ2        407     12/27/2012 11:27    Approved
REQ2        203     12/27/2012 17:34    Reviewed
REQ2        242     12/28/2012 14:07    WF Setup in Dev.
REQ2        203     12/28/2012 14:11    Transport to prod.
REQ2        242     12/28/2012 21:27    Completed
REQ3        407     12/27/2012 11:32    Submitted
REQ3        456     12/27/2012 11:33    Approved
REQ3        407     12/27/2012 11:34    Approved
REQ3        203     12/27/2012 17:33    Reviewed
REQ3        242     12/27/2012 18:33    WF Setup in Dev.
REQ3        203     12/28/2012 13:43    Transport to prod.
REQ3        242     1/3/2013 14:56      Completed

RequestNo、UserCode、ReceivedDate、LastActionDate、ActionType、Aging (LastActionDate と ReceivedDate の差) Cummulative の列を持つエージング テーブルを生成する必要があります。

RequestNo   UserCode    ReceivedDate        LastActionDate      ActionType          Aging   Cummulative
REQ1        407         12/14/2012 9:47     12/14/2012 9:47     Saved               0       0
REQ1        407         12/14/2012 9:47     12/14/2012 9:48     Submitted           0       0
REQ1        407         12/14/2012 9:48     12/14/2012 9:48     Approved            0       0
REQ1        203         12/14/2012 9:48     12/17/2012 9:54     Reviewed            3       3
REQ1        242         12/17/2012 9:54     12/18/2012 10:29    WF Setup in Dev.    1       4
REQ1        203         12/18/2012 10:29    12/18/2012 15:14    Transport to prod.  0       4
REQ1        242         12/18/2012 15:14    12/18/2012 15:16    Completed           0       4
REQ2        407         12/27/2012 10:36    12/27/2012 10:36    Submitted           0       0
REQ2        456         12/27/2012 10:36    12/27/2012 11:18    Approved            0       0
REQ2        407         12/27/2012 11:18    12/27/2012 11:27    Approved            0       0
REQ2        203         12/27/2012 11:27    12/27/2012 17:34    Reviewed            0       0
REQ2        242         12/27/2012 17:34    12/28/2012 14:07    WF Setup in Dev.    1       1
REQ2        203         12/28/2012 14:07    12/28/2012 14:11    Transport to prod.  0       1
REQ2        242         12/28/2012 14:11    12/28/2012 21:27    Completed           0       1
REQ3        407         12/27/2012 11:32    12/27/2012 11:32    Submitted           0       0
REQ3        456         12/27/2012 11:32    12/27/2012 11:33    Approved            0       0
REQ3        407         12/27/2012 11:33    12/27/2012 11:34    Approved            0       0
REQ3        203         12/27/2012 11:34    12/27/2012 17:33    Reviewed            0       0
REQ3        242         12/27/2012 17:33    12/27/2012 18:33    WF Setup in Dev.    0       0
REQ3        203         12/27/2012 18:33    12/28/2012 13:43    Transport to prod.  1       1
REQ3        242         12/28/2012 13:43    1/3/2013 14:56      Completed           6       7
4

1 に答える 1

0

このようなものをお探しですか?

WITH cte AS
(
  SELECT *
    FROM
  (
    SELECT t.*, ROW_NUMBER() OVER (PARTITION BY RequestNo ORDER BY LastActionDate) rnum
      FROM Table1 t
  ) q
)
SELECT c1.RequestNo, c1.usercode, 
       COALESCE(c2.LastActionDate, c1.LastActionDate) ReceivedDate,
       c1.LastActionDate, c1.ActionType, 
       DATEDIFF(day, COALESCE(c2.LastActionDate, c1.LastActionDate), c1.LastActionDate) Aging
  FROM cte c1 LEFT JOIN cte c2
    ON c1.RequestNo = c2.RequestNo
   AND c1.rnum = c2.rnum + 1
 ORDER BY RequestNo, LastActionDate

出力:

| | リクエスト番号 | ユーザーコード | 受領日 | 最後の日付 | アクションタイプ | 老化 |
|-----------|----------|-------------------------- -------|---------------------------------|-------- ------------|-------|
| | REQ1 | 407 | 2012 年 12 月 14 日 09:47:00+0000 | 2012 年 12 月 14 日 09:47:00+0000 | 保存済み | 0 |
| | REQ1 | 407 | 2012 年 12 月 14 日 09:47:00+0000 | 2012 年 12 月 14 日 09:48:00+0000 | 提出済み | 0 |
| | REQ1 | 407 | 2012 年 12 月 14 日 09:48:00+0000 | 2012 年 12 月 14 日 09:48:00+0000 | 承認済み | 0 |
| | REQ1 | 203 | 2012 年 12 月 14 日 09:48:00+0000 | 2012 年 12 月 17 日 09:54:00+0000 | レビュー済み | 3 |
| | REQ1 | 242 | 2012 年 12 月 17 日 09:54:00+0000 | 2012 年 12 月 18 日 10:29:00+0000 | Dev での WF セットアップ。| | 1 |
| | REQ1 | 203 | 2012 年 12 月 18 日 10:29:00+0000 | 2012 年 12 月 18 日 15:14:00+0000 | 製品への輸送。| | 0 |
| | REQ1 | 242 | 2012 年 12 月 18 日 15:14:00+0000 | 2012 年 12 月 18 日 15:16:00+0000 | 完了 | 0 |
| | REQ2 | 407 | 2012 年 12 月 27 日 10:36:00+0000 | 2012 年 12 月 27 日 10:36:00+0000 | 提出済み | 0 |
| | REQ2 | 456 | 2012 年 12 月 27 日 10:36:00+0000 | 2012 年 12 月 27 日 11:18:00+0000 | 承認済み | 0 |
| | REQ2 | 407 | 2012 年 12 月 27 日 11:18:00+0000 | 2012 年 12 月 27 日 11:27:00+0000 | 承認済み | 0 |
| | REQ2 | 203 | 2012 年 12 月 27 日 11:27:00+0000 | 2012 年 12 月 27 日 17:34:00+0000 | レビュー済み | 0 |
| | REQ2 | 242 | 2012 年 12 月 27 日 17:34:00+0000 | 2012 年 12 月 28 日 14:07:00+0000 | Dev での WF セットアップ。| | 1 |
| | REQ2 | 203 | 2012 年 12 月 28 日 14:07:00+0000 | 2012 年 12 月 28 日 14:11:00+0000 | 製品への輸送。| | 0 |
| | REQ2 | 242 | 2012 年 12 月 28 日 14:11:00+0000 | 2012 年 12 月 28 日 21:27:00+0000 | 完了 | 0 |
| | REQ3 | 407 | 2012 年 12 月 27 日 11:32:00+0000 | 2012 年 12 月 27 日 11:32:00+0000 | 提出済み | 0 |
| | REQ3 | 456 | 2012 年 12 月 27 日 11:32:00+0000 | 2012 年 12 月 27 日 11:33:00+0000 | 承認済み | 0 |
| | REQ3 | 407 | 2012 年 12 月 27 日 11:33:00+0000 | 2012 年 12 月 27 日 11:34:00+0000 | 承認済み | 0 |
| | REQ3 | 203 | 2012 年 12 月 27 日 11:34:00+0000 | 2012 年 12 月 27 日 17:33:00+0000 | レビュー済み | 0 |
| | REQ3 | 242 | 2012 年 12 月 27 日 17:33:00+0000 | 2012 年 12 月 27 日 18:33:00+0000 | Dev での WF セットアップ。| | 0 |
| | REQ3 | 203 | 2012 年 12 月 27 日 18:33:00+0000 | 2012 年 12 月 28 日 13:43:00+0000 | 製品への輸送。| | 1 |
| | REQ3 | 242 | 2012 年 12 月 28 日 13:43:00+0000 | 2013 年 1 月 3 日 14:56:00+0000 | 完了 | 6 |

これがSQLFiddleのデモです

于 2013-08-23T16:37:41.517 に答える