我正在使用 QueryBuilder 。 我想选择 VendTable 中有两个相等字段的所有记录。
我的代码看起来像这样:
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))));
在 Debug 上,我看到了查询值:
SELECT * FROM VendTable(VendTable_1)WHERE((BirthDate = {ts'1900-01-01 00:00:00.000'}))
但不行,我想创建此查询:
select vendTable
where vendTable.BirthDate== vendTable.FieldTransDate;
SELECT * FROM VendTable(VendTable_1)WHERE((BirthDate = FieldTransDate))
我想比较同一个表BirthDate == FieldTransDate
上的字段如何通过QueryBuilder进行上面显示的查询?
谢谢, 享受!
答案 0 :(得分: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))));