上一次成功运行作业的报告

2020-09-12 03:58发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家们,

我正在尝试编写自定义的SQL查询以使作业最后一次成功运行。

报告1

单个应用程序链列表和上一次运行的报告。

报告2

关于单个作业及其上次运行时间的报告(针对每个应用程序)

对于以上这些报告,我已经在sql查询下面编写了代码,但是我无法分离单个作业和链。

请您对此考虑一下。

从作业J中选择DISTINCT J.JobDefinition,MAX(J.ScheduledStartTime)
 在哪里J.Status ='C'GROUP BY J.JobDefinition 

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家们,

我正在尝试编写自定义的SQL查询以使作业最后一次成功运行。

报告1

单个应用程序链列表和上一次运行的报告。

报告2

关于单个作业及其上次运行时间的报告(针对每个应用程序)

对于以上这些报告,我已经在sql查询下面编写了代码,但是我无法分离单个作业和链。

请您对此考虑一下。

从作业J中选择DISTINCT J.JobDefinition,MAX(J.ScheduledStartTime)
 在哪里J.Status ='C'GROUP BY J.JobDefinition 
付费偷看设置
发送
4条回答
wang628962
1楼-- · 2020-09-12 04:12

嗨,

尝试此操作以分隔工作和链条。

仅工作链:

从作业J,作业定义JD,作业定义类型JT中选择DISTINCT J.JobDefinition,MAX(J.ScheduledStartTime)
 在哪里J.JobDefinition = JD.UniqueId
 AND JD.JobDefinitionType = JT.UniqueId
 AND JT.Name ='作业链'
 AND J.Status ='C'
 GROUP BY J.JobDefinition 

仅工作(非工作链)

从作业J,作业定义JD,作业定义类型JT中选择DISTINCT J.JobDefinition,MAX(J.ScheduledStartTime)
 在哪里J.JobDefinition = JD.UniqueId
 AND JD.JobDefinitionType = JT.UniqueId
 AND NOT JT.Name ='JobChain'
 AND J.Status ='C'
 GROUP BY J.JobDefinition 

要包括基于应用程序的选择,可以向"应用程序"表中添加另一个联接。

K,

Bas

木偶小白
2楼-- · 2020-09-12 04:19

嗨,Bas

谢谢您的评论,但是在这里MAX函数没有给我预期的结果。

在此查询中,我们将所有作业分组,但是在结果集中,我得到了重复的值。 我只想换回最新的工作。

假设我有一个每1小时运行一次的工作,因此从工作历史记录中我只查找最近的运行记录或行。

在报告2中,只有没有步骤的作业定义。假设XYZ作业定义是独立计划的,并且没有子链或任何步骤。

以下查询没有给我DISTINCT作业名称。

从作业J,作业定义JD,作业定义类型JT,应用程序A中选择SELECT J.JobDefinition,MAX(J.ScheduledStartTime),J.ScheduledStartTime
 在哪里J.JobDefinition = JD.UniqueId
 AND JD.JobDefinitionType = JT.UniqueId
 AND JD.ParentApplication = A.UniqueId
 AND JT.Name ='作业链'
 AND J.Status ='C'
 AND JD.Behavior = 0
 AND A.Name ='TEST_NN'
 GROUP BY J.JobDefinition,J.ScheduledStartTime
 

您对此的想法将不胜感激!!

wang628962
3楼-- · 2020-09-12 04:08
嗨,

 到目前为止,我已经修改了查询,以获得工作链的预期结果,但是必须在更大的数据集上进行测试。

 选择
   J.JobDefinition,J.ScheduledStartTime,J.Status
 从
   作业J,作业定义JD,作业定义类型JT,应用程序A
 哪里
 J.JobDefinition = JD.UniqueId
 AND JD.JobDefinitionType = JT.UniqueId
 AND JD.ParentApplication = A.UniqueId
 AND JT.Name ='作业链'
 AND JD.Behavior = 0
 AND A.Name ='TEST_NN'
 AND J.ScheduledStartTime =(从作业B那里选择MAX(B.ScheduledStartTime)MAX.B.JobDefinition = J.JobDefinition AND B.Status ='C')
 
spaceman01
4楼-- · 2020-09-12 04:09

嗨,

好,您发现了!,问题确实是当您使用GROUP BY,使用2个或更多列时,它不再仅按Jobdefinition进行分组。

要进一步改善查询,您可以通过添加以下内容来仅选择顶级作业:

 J.ParentJob IS NULL 

这样,您将不会选择任何步骤或子链

K,

Bas

一周热门 更多>

点击此处---> EasySAP.com 一起学习S4 HANA ...

相关问答