问题描述
这已经困扰了我一段时间了。我觉得这应该是可能的(而且相当容易),但是我似乎无法理解该怎么做。
基本上(用英语)我想返回今天的所有操作,并按DOC_TRACKING_ID分组(即,所有相同的参考号 并在日期(该参考组的第一个操作-ACTION_DTM)的日期之内按操作顺序(使用sortseq)进行排序。数据全都放在一个表中。
我希望这是有道理的。
那么,我现在得到的是什么。
ACTION ACTION_DTM DOC_NAME DOC_TRACKING_ID sortseq
FS_READ 2020-08-24 13:35:40 INVOIC_23846227.imp 808331174204615cenode1 1
ARC_PRE 2020-08-24 13:35:40 INVOICE_20200824134740_8598875.imp 808331174204615cenode1 2
TRANSL 2020-08-24 13:35:41 - 808331174204615cenode1 3
ARC_POST 2020-08-24 13:35:41 INVOICE_20200824134740_8598875.edi 808331174204615cenode1 4
FTP_UP 2020-08-24 13:40:38 INVOICE_202008241347408598875.edi 808331174204615cenode1 5
FS_READ 2020-08-24 12:32:44 ORDERS_20180419-161546-373.edi 8634751742006e629node1 1
ARC_PRE 2020-08-24 12:32:46 ORDERS_20200824123245_8598307.xml 8634751742006e629node1 2
TRANSL 2020-08-24 12:32:46 - 8634751742006e629node1 3
ARC_POST 2020-08-24 12:32:46 ORDERS_20200824123245_8598307.ixml 8634751742006e629node1 4
FTP_UP 2020-08-24 12:38:38 ORDERS_202008241232458598307.xml 8634751742006e629node1 5
我想要得到的..
ACTION ACTION_DTM DOC_NAME DOC_TRACKING_ID sortseq
FS_READ 2020-08-24 12:32:44 ORDERS_20180419-161546-373.edi 8634751742006e629node1 1
ARC_PRE 2020-08-24 12:32:46 ORDERS_20200824123245_8598307.xml 8634751742006e629node1 2
TRANSL 2020-08-24 12:32:46 - 8634751742006e629node1 3
ARC_POST 2020-08-24 12:32:46 ORDERS_20200824123245_8598307.ixml 8634751742006e629node1 4
FTP_UP 2020-08-24 12:38:38 ORDERS_202008241232458598307.xml 8634751742006e629node1 5
FS_READ 2020-08-24 13:35:40 INVOIC_23846227.imp 808331174204615cenode1 1
ARC_PRE 2020-08-24 13:35:40 INVOICE_20200824134740_8598875.imp 808331174204615cenode1 2
TRANSL 2020-08-24 13:35:41 - 808331174204615cenode1 3
ARC_POST 2020-08-24 13:35:41 INVOICE_20200824134740_8598875.edi 808331174204615cenode1 4
FTP_UP 2020-08-24 13:40:38 INVOICE_202008241347408598875.edi 808331174204615cenode1 5
我在两个输出中都添加了一个空白行,以使查看分组更加容易。我不需要在输出中。
到目前为止,SQL。
select ta.ACTION,ta.ACTION_DTM,ta.DOC_NAME,DOC_TRACKING_ID,case
when ta.ACTION = 'FTP_DL' then '1'
when ta.ACTION = 'ARC_PRE' then '2'
when ta.ACTION = 'TRANSL' then '3'
when ta.ACTION = 'ARC_POST' then '4'
when ta.ACTION = 'FTP_UP' then '5'
when ta.ACTION = 'FAIL' then '3'
when ta.ACTION = 'FS_READ' then '1'
when ta.ACTION = 'FS_WRITE' then '5'
end as sortseq
from DOC_TRACKING_ACTION ta
where ta.DOC_TRACKING_ID in (select distinct ta1.DOC_TRACKING_ID
from DOC_TRACKING_ACTION ta1
where ta1.ACTION_DTM >= CURRENT DATE - 0 DAYS)
order by ta.DOC_TRACKING_ID asc,sortseq;
任何帮助将不胜感激..! (当然,对代码的任何改进总是值得赞赏的。。。)
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)