【发布时间】:2020-07-31 02:16:22
【问题描述】:
我正在尝试报告活动。我有一个包含“停止编号”的表格,但该停止编号与活动发生的实际停止无关(停止 1 到达/离开,停止 2 到达/离开)。所以我想使用 ROW_NUMBER () 对停靠点进行编号...
select
WH.SEGMENT_NB,
WH.STOP_NB,
ROW_NUMBER () OVER(PARTITION BY WH.SEGMENT_NB, WH.STOP_NB ORDER BY WH.STOP_NB) as Stop,
MAX(CASE WHEN WH.WORK_ACTION_TYPE_ID = 'EAA'
THEN WH.CREATE_TS
END) AS Actual_Arrival,
MAX(CASE WHEN WH.WORK_ACTION_TYPE_ID = 'EAD'
THEN WH.CREATE_TS
END) AS Actual_Departure,
WH.CREATED_BY_TX AS ENTERED_BY
from VASDW.TNT_WORK_HISTORY WH
join VASDW.TNT_WORK_ACTION_TYPE WA on WA.WORK_ACTION_TYPE_ID = WH.WORK_ACTION_TYPE_ID
and WA.RECORD_DELETE_FG = 'N'
where WH.WORK_ACTION_TYPE_ID in('EAA','EAD')
and wh.segment_nb = 15931846
GROUP BY WH.SEGMENT_NB, WH.STOP_NB, WH.CREATED_BY_TX
ORDER BY WH.SEGMENT_NB, WH.STOP_NB
我希望看到这个:
Segment_Nb STOP_NB STOP
15931846 12345 1
15931846 12345 1
15931846 23456 2
但它正在读取 STOP 1,2,1。有什么想法我需要解决吗? TIA。
【问题讨论】:
标签: sql select db2 window-functions