我有一个具有以下列名称的表:portfolio
,tradeType
,currency
,security
,tradeQuantity
,tradeMV
,{ {1}},totalTradeMV
和transferMV
我想将adjustedMV
,tradeQuantity
,tradeMV
,totalTradeMV
列减少transferMV
这是一个示例查询:
adjustedMV
但是,仅当odTradesAdjusted:update tradeQuantity:tradeQuantity-0f^adjustedMV,tradeMV:tradeMV-0f^adjustedMV,totalTradeMV:totalTradeMV-0f^adjustedMV,transferMV:transferMV-0f^adjustedMV from odTradesAdjusted
小于其他列时,我才想这样做。我可以对每个列使用adjustedMV
进行条件向量处理,但是有没有比4次写出条件向量处理更为优雅的方法了?
答案 0 :(得分:3)
您可以将apply(@
)与一些减法逻辑结合使用:
@[t;`tradeQuantity`tradeMV`totalTradeMV`transferMV;{x-y*0<x-y}[;t`adjustedMV]]
编辑-可以简化为
@[t;`tradeQuantity`tradeMV`totalTradeMV`transferMV;{x-y*y<x}[;t`adjustedMV]]