2017-02-08 17 views
1

나는 QueryBuilder을 사용하고 있습니다. VendTable에 두 개의 동일한 필드가있는 모든 레코드를 선택하고 싶습니다.QueryBuilder의 두 필드를 비교하는 방법은 무엇입니까?

VendTable FROM

SELECT * (VendTable_1) WHERE ((생년월일 = {TS '1900- : 나는 THIE 쿼리 가치를

QueryBuildDataSource qbds; 
QueryRun  queryRun; 

qbds= queryRun.query().dataSourceTable(tableNum(VendTable)); 
qbds.addRange(fieldNum(VendTable, BirthDate)) 
.value(strFmt('%1 == %2',strFmt("%1.%2",qbds.name(), fieldStr(VendTable,BirthDate)) ,strFmt("%1.%2", qbds.name(),fieldStr(VendTable,FieldTransDate)))); 

디버그에 :

내 코드는이 looklike입니다 01-01 00 : 00 : 00.000 '}))

하지만 내가이 쿼리를 만들고 싶습니다 작동 :

select vendTable 
where vendTable.BirthDate== vendTable.FieldTransDate; 
VendTable FROM

SELECT * ((생년월일 = FieldTransDate))

내가 같은 테이블 생년월일 ==에 FieldTransDate

을 필드를 비교할 (VendTable_1) 나는 위의 쿼리를 만들 수있는 방법 QueryBuilder?

감사합니다. 을 즐겨보세요!

답변

1

query expression에 올바른 구문을 사용하지 마십시오. 괄호를 기억하십시오 :

qbds.addRange(fieldNum(VendTable, BirthDate)) 
    .value(strFmt('(%1 == %2)', 
        strFmt("%1.%2", qbds.name(), fieldStr(VendTable, BirthDate)), 
        strFmt("%1.%2", qbds.name(), fieldStr(VendTable, TransDate)))); 
+0

감사합니다. – ulisses