Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在使用聚合函数时修复SQL错误SAP HANA_Sql_Hana - Fatal编程技术网

如何在使用聚合函数时修复SQL错误SAP HANA

如何在使用聚合函数时修复SQL错误SAP HANA,sql,hana,Sql,Hana,如果我在SAP HANA中运行此sql,它将生成以下错误 (SQL编辑器)无法在l1为(选择远程源名称、所有者、名称、最大值(开始时间)、开始时间、结果状态的情况下执行“从…” 错误:(dberror)266-数据类型不一致:SUM/AVG/STDEV/VAR函数只能使用数字类型:第43行第7列(位置654) 如果我排除sql的这一部分,选择sum(加载时间)作为TOTAL\u LOADING\u TIME,则它可以工作 如何解决此问题以获得总加载时间 WITH l1 AS( SELECT R

如果我在SAP HANA中运行此sql,它将生成以下错误

(SQL编辑器)无法在l1为(选择远程源名称、所有者、名称、最大值(开始时间)、开始时间、结果状态的情况下执行“从…” 错误:(dberror)266-数据类型不一致:SUM/AVG/STDEV/VAR函数只能使用数字类型:第43行第7列(位置654)

如果我排除sql
的这一部分,选择sum(加载时间)作为TOTAL\u LOADING\u TIME
,则它可以工作

如何解决此问题以获得
总加载时间

WITH l1 AS(
SELECT  REMOTE_SOURCE_NAME,OWNER,NAME,MAX(START_TIME) START_TIME,RESULT_STATE
FROM "MEAG_EIM_SHARED"."meag.eim.shared::replication.Log"
WHERE TYPE = 'INITIAL' AND RESULT_STATE = 'COMPLETED' 
AND REMOTE_SOURCE_NAME='RS_SDI_IMMO'
group by REMOTE_SOURCE_NAME,OWNER,NAME,RESULT_STATE
order by NAME ASC),
l2 AS
(SELECT  REMOTE_SOURCE_NAME,OWNER,NAME,START_TIME,END_TIME,RESULT_STATE
FROM "MEAG_EIM_SHARED"."meag.eim.shared::replication.Log"
WHERE TYPE = 'INITIAL' AND RESULT_STATE = 'COMPLETED' 
AND REMOTE_SOURCE_NAME='RS_SDI_IMMO'
group by REMOTE_SOURCE_NAME,OWNER,NAME,RESULT_STATE,START_TIME,END_TIME
order by NAME ASC)

select sum(LOADING_TIME)  AS TOTAL_LOADING_TIME
from(
select layer1.REMOTE_SOURCE_NAME,layer1.OWNER,layer1.name,layer1.RESULT_STATE,layer1.start_time start_time,layer2.end_time end_time, 
SECONDS_BETWEEN(layer1.START_TIME,layer2.END_TIME) || 's' LOADING_TIME

from l1  layer1 inner join l2 AS layer2
on layer1.start_time=layer2.start_time
order by name);

LOADING_TIME
将字符“s”连接到它-将数值转换为字符串。 对于字符串,没有
SUM()
函数

如果“s”很重要,那么在求和后加上它将解决问题。 否则,在列名中添加单位名称(我猜s代表秒)将允许客户端工具仍然使用数值(即排序时)