如何比较 QueryBuilder 中的两个字段?

How to compare two fields in QueryBuilder?

我正在使用 QueryBuilder。 我想 select 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))));

调试 我看到你的查询值:

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))

我想比较相同 Table 出生日期 == FieldTransDate

上的字段

如何通过 QueryBuilder 进行上面显示的查询?

谢谢, 享受!

您没有使用 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))));