2016-08-03 26 views
1

负载我已经装表这个SQL查询中QlikSense数据加载编辑如下无效路径,Qlik检测误差,同时利用从住户表

[RESOURCE_ALLOCATION]: 
select t.rec_id as RESOURCE_ALLOC_TASKID, 
t.name as RESOURCE_ALLOC_TASKNAME, 
t.actual_starttime as RESOURCE_ALLOC_STARTTIME, 
t.actual_endtime as RESOURCE_ALLOC_ENDTIME, 
extract(year from t.actual_starttime) as RESOURCE_ALLOC_YEAR, 
(t.actual_endtime - t.actual_starttime) as RESOURCE_ALLOC_DAYS, 
t.resource_id as RESOURCE_ALLOC_ERSOURCEID, 
r.name as RESOURCE_ALLOC_ERSOURCENAME 
from public.dsh_project_tasks t, public.dsh_resources r 
where t.resource_id = r.rec_id and extract(year from t.actual_starttime) = extract (year from t.actual_endtime); 

然后我特林通过选择加载另一个表最后加载表[RESOURCE_ALLOCATION]由另一查询刚过负载数据编辑器上方的一个,如下

[Resource_Utilization]: 
load rr.RESOURCE_ALLOC_ERSOURCENAME as busy_resourcename, 
      rr.RESOURCE_ALLOC_YEAR as busy_resourceyear, 
      Sum(rr.RESOURCE_ALLOC_DAYS) as busy_resourceDays, 
      if(Sum(rr.RESOURCE_ALLOC_DAYS) < 368, 'busy', 'free')as BUSY_RESOURCESTATUS 
from RESOURCE_ALLOCATION rr 
group by rr.RESOURCE_ALLOC_ERSOURCENAME, rr.RESOURCE_ALLOC_YEAR; 




[Resource_Utilization]: 
load rr.RESOURCE_ALLOC_ERSOURCENAME as busy_resourcename, 
rr.RESOURCE_ALLOC_YEAR as busy_resourceyear, 
(365 - Sum(rr.RESOURCE_ALLOC_DAYS)) as busy_resourceDays, 
if((365 - Sum(rr.RESOURCE_ALLOC_DAYS)) < 366, 'free', 'busy') as BUSY_RESOURCESTATUS 
from resource_allocation rr 
group by rr.RESOURCE_ALLOC_ERSOURCENAME, rr.RESOURCE_ALLOC_YEAR; 

但是我对负载数据的错误,说

发生以下错误:发生在这里 无效路径 错误:

[Resource_Utilization]: 
load rr.RESOURCE_ALLOC_ERSOURCENAME as busy_resourcename, 
rr.RESOURCE_ALLOC_YEAR as busy_resourceyear, 
Sum(rr.RESOURCE_ALLOC_DAYS) as busy_resourceDays, 
if(Sum(rr.RESOURCE_ALLOC_DAYS) < 368, 'busy', 'free')as BUSY_RESOURCESTATUS 
from RESOURCE_ALLOCATION rr group by rr.RESOURCE_ALLOC_ERSOURCENAME, rr.RESOURCE_ALLOC_YEAR 

请帮帮忙,为什么我得到这个错误,虽然同样的查询在DB控制台中选择数据好?

回答

2

[Resource_Utilization]: load rr.RESOURCE_ALLOC_ERSOURCENAME as busy_resourcename, rr.RESOURCE_ALLOC_YEAR as busy_resourceyear, Sum(rr.RESOURCE_ALLOC_DAYS) as busy_resourceDays, if(Sum(rr.RESOURCE_ALLOC_DAYS) < 368, 'busy', 'free')as BUSY_RESOURCESTATUS from RESOURCE_ALLOCATION rr group by rr.RESOURCE_ALLOC_ERSOURCENAME, rr.RESOURCE_ALLOC_YEAR;

当查询被传递到SQL Server中的SQL语法才有效。使用结果表时,您需要使用本机Qlik Sense脚本语言语法。这与你需要使你的脚本工作非常相似,

[Resource_Utilization]: 
load RESOURCE_ALLOC_ERSOURCENAME as busy_resourcename, 
     RESOURCE_ALLOC_YEAR as busy_resourceyear, 
     Sum(RESOURCE_ALLOC_DAYS) as busy_resourceDays, 
     if(Sum(RESOURCE_ALLOC_DAYS) < 368, 'busy', 'free') as BUSY_RESOURCESTATUS 
resident RESOURCE_ALLOCATION 
     group by RESOURCE_ALLOC_ERSOURCENAME, RESOURCE_ALLOC_YEAR; 

关键的变化是从驻地改变这样的感觉知道看里面的自己的结果不表为表您参考一些外部来源。 rr。缩写会导致它失败,因为Sense只能为每个脚本请求引用一个表。