cjm2671
cjm2671

Reputation: 19466

How do I write multi-line queries in KDB?

Currently, my query is expanding, and only getting longer:

m: ungroup select date, c, prevClose: prev c, prevVolume: prev v, premarketGap: log[o % prev c], t1Range: log[(prev h)%(prev o)], t1Return: t1Log[c], t5Return: tXreturn[5;1;c], t25Return: tXreturn[25;6;c], t250Return: tXreturn[250;31;c], targetH: log[h%o], targetL: log[l%o], targetC: log[c%o] by sym from daily;

I've tried breaking it up into multiple lines with ; and indents, but it doesn't seem to like it no matter what I do.

I'm using KX Developer as an interface.

How do I break up queries into multiple lines?

Upvotes: 2

Views: 1094

Answers (1)

S.Stewart
S.Stewart

Reputation: 611

If you are writing multi-line queries in a .q file you need at least one space on each of the following line(s) for the query to execute. i.e.

m:ungroup select date, c, prevClose: prev c, 
  prevVolume: prev v, premarketGap: log[o % prev c], 
  t1Range: log[(prev h)%(prev o)], t1Return: t1Log[c], 
  t5Return: tXreturn[5;1;c], t25Return: tXreturn[25;6;c], 
  t250Return: tXreturn[250;31;c], targetH: log[h%o], 
  targetL: log[l%o], targetC: log[c%o] 
    by sym from daily;

(I indented again for the by clause as this is easier to read and follows recommended SQL syntax).

Upvotes: 2

Related Questions