2017-07-05 34 views
0

对于qlikview来说是新的我是一个混淆的问题,我应该在sql和qlik提供的开箱即用中做。如何比较存储在同一个表中的值与qlikview?

让假设我有一个类似的表:

ID状态类型值数量dat_s区
1 ACTIVO A 10 10 20171001北
2 ACTIVO B 20 20 20171001北
3 ACTIVO C 15的15 20171001扎
4 Fechado A 5 5 20171101北
5 ACTIVO B 20 20 20171101北
6 ACTIVO d 5 5 20171101扎
7 ACTIVO d 5 5 20170901扎

我喜欢比较一个表与自己,但只有来自选定日期的喜欢,让我们想象,数据A = 20171001和日期B = 20171001(这些应该是用户通过输入字段或其他任何地方定义)比较ID像做的是,例如:

类型CountDateA ValDateA CountDateB ValDateB valuediff
A 1 100 1 25 -75
乙1 400 1 400 0
的C 1 225 0 0 -225
d 0 0 1 25 25

区ValDateA ValDateB valuediff
北500 425 -75
Sul的225 -200 25

我刨复制的表和相同的数据留下一半是空的使用不同的字段名称,但我希望有更优雅的方式

谢谢大家。

+1

你能扩展你的解释?很难理解你想达到的目标。这些100,400,225值从哪里来? –

+0

我认为你误解了Qlik机制。只使用单一数据表条目,您可以在前端实现两个结果表。这两层是彼此分开的。 –

+0

yup,它是我用qlik完整的缺点,我用这种表达式排序: Count(distinct {} idtbl_projectos) –

回答

0

只需要加载该表,然后clumns的计算结果是:

总和(<状态= {$( 'ACTIVO')},DAT = {$(20171001)}数量* VAL)

0

仍然与您的问题相混淆。 Qlikview的功能依赖于(用几句话)构建根据所选过滤器自动更新的图表或表格。在你的例子中,我想,这个过滤器就是用户选择的日期(或日期)。因此,您不需要定义像ValDateA,ValDateB等列。然而,在您的情况下,您似乎想要比较两个日期,因此您可以定义这些列,每个列取决于不同的日期选择器。这是说,我会告诉你,虽然我真的不知道我是否理解以及我将如何处理你的问题:

  • 我假设你正确读取数据,以便你有记忆的第一个数据表(字段:id状态类型数值数量dat_s区域)(注意:要小心且与大写字母一致)
  • 创建一个尺寸为“type”(它将自动筛选每一行表达式)的表格图表以及以下表达式:

    1. Count(distinct{< Status = {"Activo"}, date_s= {"$(vDate1)"} >} id) //how many rows in active state for date1 (vDate1 is a variable assigned to the first date picker)
    2. Sum({< Status = {"Activo"}, date_s= {"$(vDate1)"} >} value*quantity)
    3. 同式(1),但使用$(vDate2)
    4. 同式(2),但使用$(vDate2)
    5. 在QlikView的,你可以只写Column(4) - Column(2),在QlikSense你需要写一遍整个表达式2和4减去款项。
相关问题