如何比较 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))));
我正在使用 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))));