首页 > 解决方案 > KDB - 基于另一列过滤列表列

问题描述

我正在努力消除查询中的数据。我附上了一张带有我的数据结果的图片(数据本身太大并且有客户信息,所以我不能包括在内)。我有两张按 SKU 加入的表格,以显示我们何时将 SKU 输入系统以及何时出售它。我们重用基于供应商的 SKU,这不是最佳实践,但目前是必要的。我想做的是消除 InvoiceDate < TransferDate 的 InvoiceDate。因此,在 InvoiceDate 列中,它只会显示前几行突出显示的黄色日期。

如果您有任何问题,请告诉我,感谢您的帮助!

数据结果

标签: kdb

解决方案


这会起作用:

 q) update InvoiceDate:{x where x >= y}'[InvoiceDate;TransferDate] from tbl

解释:

上面的查询使用 'each-both(') 函数逐对迭代 InvoiceDate 和 TransferDate 值(间接按行),将每一对作为 'x' 和 'y' 传递给 lambda 函数,然后选择 'x'(InvoiceDate) 哪个是 >= 'y' (TransferDate)


推荐阅读