3

我将字符串存储在变量名 res 下的列表中。接下来,我构造一个查询字符串列表。但是,似乎没有读取该变量。

这就是我的意思:

q) hdl: (to a port)
q) res: `string1`string2`string3
**q) ans: hdl"select count i by date,sym from trade where date=xxx, sym in `res"**

当我执行命令时,我总是得到一个空的结果集。我知道结果集不能为空。那么如何修复我的查询(粗体)以返回结果?

请注意,我正在 unix 框中的 aq 会话中执行任务。

4

2 回答 2

6

像下面这样的东西会起作用:

ans:hdl({select count i by date,sym from trade where date=xxx, sym in x};res)

@mollmerx 关于在本地而不是在远程进程上定义 res 是正确的,尽管我上面的查询比功能选择更可取。

于 2014-05-12T16:30:35.320 回答
2

您正在本地进程上设置 res 。您可以通过执行以下操作来解决此问题:

hdl"res:`string1`string2`string3"

我认为您还需要从res选择查询中删除反引号。

另一个建议是不要通过句柄发送 aq 字符串。您可以继续在本地设置 res,然后执行类似以下操作:

hdl(?;`trade;((=;`date;xxx);(in;`sym;enlist res));0b;enlist[`cnt]!enlist(count;`i))
于 2014-05-12T11:02:25.720 回答