Похоже, вы создаете вложенный список значений при попытке создать словарь, длина которого не равна длине списка ключей.
Например, скажем, balanceCol
определяется как `a`b`c
затем:
q)count(`parentPort;`portfolio;`currency;`balanceT1;`balanceT2;`balanceT3;`minBalanceTransferUsd;`odSubPort)
8
q)balanceCol:`a`b`c
q)count(`parentPort;`portfolio;`currency;balanceCol;(^;0f;`minBalanceTransferUsd);`overdraftSubPortId)
6
Здесь есть 6 значений, но 8 ключей.Чтобы исправить это, вы можете объединить их элементы следующим образом:
`parentPort`portfolio`currency,balanceCol,enlist[(^;0f;`minBalanceTransferUsd)],`overdraftSubPortId
Что касается динамического запроса, следующая функция позволит вам создать словарь для функционального выбора на основе любого числа столбцов даты.сохраняя порядок столбцов, который вы использовали выше.
f:{[d]
k:`parentPort`portfolio`currency,(`$"balanceT",/:string 1+til count d),`minBalanceTransferUsd`odSubPort;
v:`parentPort`portfolio`currency,d,enlist[(^;0f;`minBalanceTransferUsd)],`overdraftSubPortId;
:k!v;
};