Sql 日期账龄报告+;累积的
我目前正在根据存储在表中的上一个操作日期编制账龄报告,如下表所示:Sql 日期账龄报告+;累积的,sql,Sql,我目前正在根据存储在表中的上一个操作日期编制账龄报告,如下表所示: 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
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之间的差异)累加。如下表所示
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
你在找这样的东西吗
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
输出:
| REQUESTNO | USERCODE | RECEIVEDDATE | LASTACTIONDATE | ACTIONTYPE | AGING |
|-----------|----------|---------------------------------|---------------------------------|--------------------|-------|
| REQ1 | 407 | December, 14 2012 09:47:00+0000 | December, 14 2012 09:47:00+0000 | Saved | 0 |
| REQ1 | 407 | December, 14 2012 09:47:00+0000 | December, 14 2012 09:48:00+0000 | Submitted | 0 |
| REQ1 | 407 | December, 14 2012 09:48:00+0000 | December, 14 2012 09:48:00+0000 | Approved | 0 |
| REQ1 | 203 | December, 14 2012 09:48:00+0000 | December, 17 2012 09:54:00+0000 | Reviewed | 3 |
| REQ1 | 242 | December, 17 2012 09:54:00+0000 | December, 18 2012 10:29:00+0000 | WF Setup in Dev. | 1 |
| REQ1 | 203 | December, 18 2012 10:29:00+0000 | December, 18 2012 15:14:00+0000 | Transport to prod. | 0 |
| REQ1 | 242 | December, 18 2012 15:14:00+0000 | December, 18 2012 15:16:00+0000 | Completed | 0 |
| REQ2 | 407 | December, 27 2012 10:36:00+0000 | December, 27 2012 10:36:00+0000 | Submitted | 0 |
| REQ2 | 456 | December, 27 2012 10:36:00+0000 | December, 27 2012 11:18:00+0000 | Approved | 0 |
| REQ2 | 407 | December, 27 2012 11:18:00+0000 | December, 27 2012 11:27:00+0000 | Approved | 0 |
| REQ2 | 203 | December, 27 2012 11:27:00+0000 | December, 27 2012 17:34:00+0000 | Reviewed | 0 |
| REQ2 | 242 | December, 27 2012 17:34:00+0000 | December, 28 2012 14:07:00+0000 | WF Setup in Dev. | 1 |
| REQ2 | 203 | December, 28 2012 14:07:00+0000 | December, 28 2012 14:11:00+0000 | Transport to prod. | 0 |
| REQ2 | 242 | December, 28 2012 14:11:00+0000 | December, 28 2012 21:27:00+0000 | Completed | 0 |
| REQ3 | 407 | December, 27 2012 11:32:00+0000 | December, 27 2012 11:32:00+0000 | Submitted | 0 |
| REQ3 | 456 | December, 27 2012 11:32:00+0000 | December, 27 2012 11:33:00+0000 | Approved | 0 |
| REQ3 | 407 | December, 27 2012 11:33:00+0000 | December, 27 2012 11:34:00+0000 | Approved | 0 |
| REQ3 | 203 | December, 27 2012 11:34:00+0000 | December, 27 2012 17:33:00+0000 | Reviewed | 0 |
| REQ3 | 242 | December, 27 2012 17:33:00+0000 | December, 27 2012 18:33:00+0000 | WF Setup in Dev. | 0 |
| REQ3 | 203 | December, 27 2012 18:33:00+0000 | December, 28 2012 13:43:00+0000 | Transport to prod. | 1 |
| REQ3 | 242 | December, 28 2012 13:43:00+0000 | January, 03 2013 14:56:00+0000 | Completed | 6 |
|REQUESTNO | USERCODE | RECEIVEDDATE | LASTACTIONDATE | ACTIONTYPE | AGING|
|-----------|----------|---------------------------------|---------------------------------|--------------------|-------|
|请求1 | 407 | 2012年12月14日09:47:00+0000 | 2012年12月14日09:47:00+0000 |已保存| 0|
|要求1 | 407 | 2012年12月14日09:47:00+0000 | 2012年12月14日09:48:00+0000 |已提交| 0|
|要求1 | 407 | 2012年12月14日09:48:00+0000 | 2012年12月14日09:48:00+0000 |批准| 0|
|要求1 | 203 | 2012年12月14日09:48:00+0000 | 2012年12月17日09:54:00+0000 |已审核| 3|
|需求1 | 242 | 2012年12月17日09:54:00+0000 | 2012年12月18日10:29:00+0000 |开发1中的WF设置|
|要求1 | 203 | 2012年12月18日10:29:00+0000 | 2012年12月18日15:14:00+0000 |运输至产品| 0|
|要求1 | 242 | 2012年12月18日15:14:00+0000 | 2012年12月18日15:16:00+0000 |已完成| 0|
|要求2 | 407 | 2012年12月27日10:36:00+0000 | 2012年12月27日10:36:00+0000 |已提交| 0|
|2012年12月27日10:36:00+0000 | 2012年12月27日11:18:00+0000 |批准| 0|
|2012年12月27日11:18:00+0000 | 2012年12月27日11:27:00+0000 |批准| 0|
|要求2 | 203 | 2012年12月27日11:27:00+0000 | 2012年12月27日17:34:00+0000 |已审核| 0|
|需求2 | 242 | 2012年12月27日17:34:00+0000 | 2012年12月28日14:07:00+0000 |开发1中的WF设置|
|要求2 | 203 | 2012年12月28日14:07:00+0000 | 2012年12月28日14:11:00+0000 |运输至产品| 0|
|请求2 | 242 | 2012年12月28日14:11:00+0000 | 2012年12月28日21:27:00+0000 |已完成| 0|
|要求3 | 407 | 2012年12月27日11:32:00+0000 | 2012年12月27日11:32:00+0000 |已提交| 0|
|2012年12月27日11:32:00+0000 | 2012年12月27日11:33:00+0000 |批准| 0|
|2012年12月27日11:33:00+0000 | 2012年12月27日11:34:00+0000 |批准| 0|
|2012年12月27日11:34:00+0000 | 2012年12月27日17:33:00+0000 |已审核| 0|
|需求3 | 242 | 2012年12月27日17:33:00+0000 | 2012年12月27日18:33:00+0000 |开发中的WF设置| 0|
|要求3 | 203 | 2012年12月27日18:33:00+0000 | 2012年12月28日13:43:00+0000 |运输至产品| 1|
|要求3 | 242 | 2012年12月28日13:43:00+0000 | 2013年1月3日14:56:00+0000 |完成| 6|
这里是演示
ReceivedDate
来自哪里?你所说的“累积式”到底是什么意思?如果您指明正在使用的RDBMS(SQL风格),也会很有帮助。您可能希望添加自己的脚本尝试,即使失败。什么RDBMS(SQL Server、MySql、Oracle等)您正在使用吗?是的,这很有帮助,但需要计算日期之间的差异,然后计算处理请求的累计日期。请参阅更新的答案。添加了老化。是否可以详细说明如何计算累积的
?它将根据请求编号进行计算。REQ1值的示例如下:第一行将是0,然后下一行将是第一行0加下一行0,第三行是前两行加第三行的总和。直到到达REQ1的结束行。