2014-05-12 2 views
3

변수 이름 res에 문자열을 저장하고 있습니다. 그런 다음 문자열 목록을 조사 할 쿼리를 만듭니다. 그러나 변수가 읽히지 않는 것처럼 보입니다.kdb 인스턴스에서 목록을 확인 중입니다.

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"** 

내가 명령을 실행할 때, 난 항상 빈 결과 집합을 얻을 :

이 무슨 뜻인지입니다. 결과 집합이 비어있을 수 없다는 것을 알고 있습니다. 그렇다면 결과를 반환하도록 내 검색어 (굵게 표시)를 수정하려면 어떻게해야합니까?

유닉스 박스의 q 세션에서 작업을 수행하고 있습니다.

답변

5

뭔가 작동합니다 :

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

@mollmerx는 고해상도가 로컬이 아닌 정의하는 데에 대한 올바른 로컬로 고해상도 설정을 계속하지만, 다음과 유사한 뭔가를 할 수 위의 쿼리는 기능 선택보다 바람직하지만 원격 프로세스입니다.

2

로컬 프로세스에서 res를 설정합니다. 당신은 수행하여 간단하게이 문제를 해결할 수 :

hdl"res:`string1`string2`string3" 

당신은 또한 당신의 선택 쿼리에 res에서 역 따옴표를 제거해야합니다 생각합니다.

또 다른 제안은 q 문자열을 핸들을 통해 보내지 않는 것입니다.

는 다음과 같은
hdl(?;`trade;((=;`date;xxx);(in;`sym;enlist res));0b;enlist[`cnt]!enlist(count;`i))