在 Qlikview 中循环和限定加载
Posted
技术标签:
【中文标题】在 Qlikview 中循环和限定加载【英文标题】:Looping and Qualify load in Qlikview 【发布时间】:2014-05-25 12:30:08 【问题描述】:我想在 qlikview 中创建两个表;一个叫车站,一个叫火车。我曾计划应用QUALIFY
语句,这样两个表之间的任何匹配字段都不会混淆。
但是,每个表格的数据都是使用FOR EACH ...
循环从多个电子表格加载的。这意味着通过限定负载,可以创建多个表,称为:Station-1、Station-2、Station-3 等,具有相似的顺序字段名称。
有没有一种方法可以半QUALIFY
我的加载语句,以便所有所有字段都以“Station”开头。或“火车”。没有为来自每个单独电子表格的数据应用不同的名称?
【问题讨论】:
我喜欢简单的答案。谢谢@oGeez。为我节省了大量的手动输入。 如果 oGeez 给出了一个好的答案,您应该投票并将其选为有效答案。 确实,我会的(我想他们最初将其作为评论发布,否则我当时会这样做) ;-) 谢谢Hal Baggot 没错,我想我做到了。感谢两者。 【参考方案1】:Concatenate您的站表,然后再限定列名。
类似于以下内容:
[Station]:
LOAD [col1], [col2]
FROM [Station1.xls]
[Station2]:
CONCATENATE (Station)
LOAD [col1], [col2]
FROM [Station2.xls]
【讨论】:
【参考方案2】:我会尽量避免一般情况下的资格。对于许多情况,不同表中的公共字段会告诉您有关日期的信息,而 Qualify 可以帮助您忽略这些字段。
您希望 trains 和 station 表之间建立什么样的关联?确保您了解 QV 关联引擎以及您想要关联的字段。
另外 - 只要字段名称相同,连接将做一个漂亮的联合。实际上,如果存在相同数量的同名字段,它将自动连接。如果不是这种情况,您最好使用 if() 语句设置变量来组合具有不同名称的公共字段。
即如果匹配('$(vFieldName)', 'FUELCODE') 然后
设置 vFuel = 'FUELCODE
';
ELSEIF Match('$(vFieldName)', 'FLDCD_TR' ) 然后
设置 vFuel = 'FLDCD_TR
';
ENDIF
最好, 大卫
【讨论】:
在这种情况下,我希望火车和车站之间没有关联。在理想情况下,这将有两个单独的仪表板,但将两个数据集放在一个应用程序中对最终用户来说不会那么混乱(并且需要更少的许可证)以上是关于在 Qlikview 中循环和限定加载的主要内容,如果未能解决你的问题,请参考以下文章