HANA SQL QUERY的Where子句中如何使用Case语句

2020-08-20 09:22发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨,专家 我有一个要求,在...

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

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


嗨,专家

我有一个要求,在这里我需要找到符合少数条件的记录总数。

我有两个表1)CALL_REGISTER 2)CALL_RESOLVED。

在通话中提出服务请求时,我们在CALL_REGISTER表上以call_no作为键进行输入

服务请求解决后,我们还要在CALL_RESOLVED表中以call_no作为键进行输入

现在我们有一个要求,我需要获取交易商xxx的记录数,调用类别即CATEG为C1

且时差少于24小时。

根据状态考虑时差。

状态为"已解决"时,请考虑呼叫创建日期时间和"呼叫已解决日期时间"之间的小时差。 在CALL_RESOLVED TABLE的JOB_DONE_DATE中捕获呼叫解决日期的地方。

状态无法解决时,请考虑呼叫创建日期时间与当前时间戳记之间的小时差。

下面是我的Query,但是在代码块后出现如下所示的错误。

选择COUNT(*)OVER()作为TOTAL_C1_COUNT,A.STATUS来自CALL_REGISTER A左加入CALL_RESOLVED B ON A.CALL_NO = B.CALL_NO
 A.DEALER_CODE IN('XXX')和A.CATEG IN('C1')AND
 案例A.状态
 当"已解决"
 然后
 SECONDS_BETWEEN(TO_TIMESTAMP(CONCAT(CONCAT(A.CALL_CREATION_DT,'',A.CALL_CREATION_TIME)),TO_TIMESTAMP(CONCAT(CONCAT(B.JOB_DONE_DATE,'',, B.JOB_DONE_TIME)))/(24 * 3600)BETWEEN 0 与24
 其他
 (SECONDS_BETWEEN(TO_TIMESTAMP(CONCAT(CONCAT(A.CALL_CREATION_DT,'',A.CALL_CREATION_TIME)),CURRENT_TIMESTAMP)/(24 * 3600))在0和24之间
 结束
 

 SAP DBTech JDBC:[257]:sql语法错误:" BETWEEN"附近的语法不正确:第6行col 165(在pos 400处)

 

善待有需要的人。