代码之家  ›  专栏  ›  技术社区  ›  George Menoutis

在节访问缩减上分配空(缺少)值

  •  1
  • George Menoutis  · 技术社区  · 7 年前

    假设我有以下非常简单的数据仓库:

    section application;
    
    car:
    LOAD * INLINE
    [
    CAR,USER
    GETZ,George
    ];
    
    person:
    LOAD * INLINE
    [
    USER
    George
    Maria
    ];
    

    如您所见,用户george拥有一辆汽车getz,而用户maria没有汽车。

    是否可以使用reduction field=car设置区段访问,以便 用户只能看到maria,谁的车上有空值?

    我读过无数的帖子。很多人说放一个空字符串-那不行。我还看到多个“答案”附有示例qvd,其中大多数都使用一个带有 空字符串值 来做这个测试,然后它看起来和 空字符串值 在区段通道。当然,这不是我感兴趣的情况,因为 空字符串值 仍然不同于 失踪/失踪 价值

    1 回复  |  直到 7 年前
        1
  •  0
  •   x3ja    7 年前

    因为节访问是通过qlik中的关联工作的,所以不可能使用当前的数据模型。maria没有空的car-她没有car关联(如果将user和car放在表中,则会显示为空,但这是一个微妙的区别)。如果你的数据结构有点不同,你可能会让它在空白的情况下工作…有点像

    car:
    LOAD * INLINE
    [
    CAR,USER
    GETZ,George
    ];
    
    outer join(car):
    LOAD * INLINE
    [
    USER
    George
    Maria
    ];
    

    之后可能需要用空白填充空值…

    car2:
    NOCONCATENATE LOAD
    if(isnull(CAR),'',CAR) as CAR,
    USER
    Resident car;
    
    drop table car;
    

    如果不能将这两个表连接起来,那么可以在car表中添加空白条目吗?

    car:
    LOAD 
    *,
    USER as USER2 
    INLINE
    [
    CAR,USER
    GETZ,George
    ];
    
    person:
    LOAD * INLINE
    [
    USER
    George
    Maria
    ];
    
    concatenate(car)
    LOAD 
    USER,
    '' as CAR
    RESIDENT person
    WHERE NOT EXISTS (USER2,USER);
    

    也有一些组合键或applymap的潜在选择,但希望上面的一个足够有用…

    推荐文章