2017-02-08 34 views
1

我正在使用QueryBuilder。 我想要選擇VendTable中的所有記錄,它們有兩個相同的字段。如何比較QueryBuilder中的兩個字段?

我的代碼是looklike這樣的:

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

調試我看到thie查詢值:

SELECT * FROM VendTable(VendTable_1)WHERE((出生日期= {TS「1900- 01-01 00:00:00.000' }))

但是不行,我想創建此查詢:

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

SELECT * FROM VendTable(VendTable_1)WHERE((出生日期= FieldTransDate))

我想字段比較上相同的表出生日期== FieldTransDate

我怎樣才能讓上面顯示的查詢通過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